Объединить несколько текстовых файлов (по строкам) в столбцы - PullRequest
0 голосов
/ 04 мая 2020

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

Например:

Файл 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, общая, которая может выполнить sh это?

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

Ответы [ 2 ]

2 голосов
/ 04 мая 2020

С 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
1 голос
/ 04 мая 2020
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'

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...