Строки из каждого файла не отображаются в одной строке при объединении двух файлов - PullRequest
1 голос
/ 07 мая 2020

У меня проблема при объединении двух файлов с помощью команды ubuntu 'join'. Это беспокоило меня целую неделю. На самом деле я часто использую эту команду для редактирования файлов и впервые столкнулся с этой проблемой. У меня есть два файла, которые выглядят так (например, здесь разделены пробелами):

file1

A A A
B B B
...

file2

A D D
B E E
...

Файлы имеют 20+ столбцов, сотни строки (набор символов utf-8, табуляция разделена). Я использую команду join для объединения двух файлов на основе первого столбца. Результат должен быть таким:

A A A D D
B B B E E 

Но я получил следующее:

A A A
 D D
B B B
 E E 

Я попытался вывести два файла, затем объединить их с помощью команды «вставить» и получил те же результаты. Кроме того, я не видел символа новой строки в начале / конце каждой строки. Пробовал sed -i 's/\n\t/\t/g' file. Не работает. Они по-прежнему не отображаются в одной строке! Вы, ребята, раньше встречались с его проблемой? в чем может быть причина?

моя команда выглядит так:

join -1 3 -2 1 -o 1.1,1.2,1.3,1.4,2.2,2.3,2.4 -t $'\t' <(sort -k3,3 file1) <(sort -k1,1 file2)  

paste -d"\t" file1 file2
...