Команда присоединения не показывает желаемый результат - PullRequest
2 голосов
/ 09 июня 2019

В разделенной запятой версии есть два текстовых файла. Первый файл содержит «номер студента, имя», а второй файл содержит «имя, класс». Мне нужно отсортировать общее поле и соединить их вместе, чтобы я мог видеть все оставшиеся поля, кроме общего поля из обоих файлов, в одном выводе.

ВХОДНОЙ ФАЙЛ 1:

1001, * 1007 Джеймсе *

1020, * 1009 Shawn *

1030, питер

1040, Лайза

ВХОДНОЙ ФАЙЛ 2:

Джеймс, 80

питер, 65 * * тысяча двадцать один

Лиза, 90

В этом случае общим полем является «имя», и в результате следует сформировать формат «число учеников, класс».

желаемый выход

1001,80

1040,90

1030,65

1020,0

sort -b -t $',' -k 2b,2 $1 > file1_sorted.txt
sort -b -t $',' -k 1b,1 $2 > file2_sorted.txt
join -1 2 -2 1 -t $',' -o 1.1,2.2 -a 1 file1_sorted.txt file2_sorted.txt

Вот так выглядит мой код, но он не дает никаких результатов и сообщений об ошибках. Можете ли вы помочь мне выяснить, в чем причина проблемы?

Большое спасибо !!

1 Ответ

1 голос
/ 09 июня 2019

С bash и GNU sort:

join -1 2 -2 1 -t, -o 1.1,2.2 -a 1 -e 0 <(sort -t, -k2 file1) <(sort -t, file2)

Вывод:

1001,80
1040,90
1030,65
1020,0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...