У меня есть несколько текстовых файлов, которые я хочу объединить по столбцам.

Например:

Файл 1

0.698501 -0.0747351 0.122993 -2.13516

Файл 2

-5.27203 -3.5916 -0.871368 1.53945

Я хочу, чтобы выходной файл был похож на:

0.698501, -5.27203
-0.0747351, -3.5916
0.122993, -0.871368
-2.13516, 1.53945

Есть ли одна строка bash, которая может это сделать?

Я буду признателен за любую помощь. --- Lyndz

0
Lyndz 4 Май 2020 в 20:58

2 ответа

Лучший ответ

С awk:

awk '{if(NR==1) {split($0,a1," ")} else {split($0,a2," ")}} END{for(i in a2) print a1[i] ", " a2[i]}' file1 file2

Выход:

0.698501, -5.27203
-0.0747351, -3.5916
0.122993, -0.871368
-2.13516, 1.53945
2
Cyrus 4 Май 2020 в 19:41
paste <(cat file1 | sed -E 's/ +/&,\n/g') <(cat file2 | sed -E 's/ +/&\n/g') | column -s $',' -t | sed -E 's/\s+/, /g' | sed -E 's/, $//g'

Это стало немного сложнее, но я думаю, что это можно сделать и немного проще.

П.С .: Пожалуйста, найдите справочные страницы каждой команды, чтобы увидеть, что они делают.

1
Ankush 4 Май 2020 в 18:36