объединение строк из двух файлов и запись в первый файл - PullRequest
0 голосов
/ 24 октября 2018

У меня есть два файла file1.txt (больше) и file2.txt (меньше), и я хотел объединить содержимое второго файла с первым, только если новые строки не повторяются.

Я использовал эту команду

sudo sh -c "sort -u test_1.txt test_2.txt > test_3.txt ; mv test_3.txt test_1.txt" 

Мне было просто интересно, если это масштабируемый способ сделать это, особенно если у меня более двух файлов.

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Если ваши файлы file1.txt ... filen.txt уже отсортированы, вы можете выполнить сортировку слиянием:

sort -m -u file1.txt ... filen.txt

Это наверняка будет самым быстрым.Если ваши файлы не отсортированы, вы можете просто сделать это без флага слияния:

sort -u file1.txt ... filen.txt

Если вам не нужна какая-либо форма сортировки, вы можете использовать эту строку :

awk '!($0 in a){a[$0]; print}' file1.txt ... filen.txt
0 голосов
/ 24 октября 2018

Вы можете использовать sort и uniq, если вам не нужно поддерживать порядок строк.

sort file1 file2 [file3...filen] | uniq > newfile.txt

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