сортировка 2 файлов и применение к ним команды - PullRequest
2 голосов
/ 08 октября 2011

Я хочу найти неуникальные строки из 2 несортированных файлов (скажем, file1 и file2). Я должен запустить 3 команды для этого.

sort file1> file1_sort
сортировка file2> file2_sort
comm -3 file1_sort file2_sort

Могу ли я сделать это без создания временных файлов и без единой команды?

Спасибо

Ответы [ 4 ]

4 голосов
/ 08 октября 2011
comm -3 <(sort file1) <(sort file2)
1 голос
/ 09 октября 2011

Ваше описание не соответствует вашим командам.Вы говорите, что хотите неуникальные строки, но у вас есть comm -3, который удаляет неуникальные строки.

sort file1 file2 | uniq -d
sort file1 file2 | uniq -u

Первая строка дает вам неуникальные строки (то есть те, которые находятся в обоих файлах file1 иfile2).Вторая строка дает вам уникальные строки (то есть те, которые появляются только в файле1 или файле2, но не в обоих).

0 голосов
/ 09 октября 2011

сортировать совсем не нужно.

awk 'NR==FNR{a[$0]=1}NR>FNR{if($0 in a)print $0}' file1 file2 > result.file
0 голосов
/ 08 октября 2011

Если вас интересуют неуникальные строки, попробуйте это:

cat file1 file2 | sort | uniq -c | sort -n
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...