bash: сравнение строк двух файлов
у меня есть два текстовых файла, которые содержат уникальный отсортированный список слов:
1:a
b
c
d
2:
b
c
мне нужен новый файл, который содержит только посторонние строки в файле 1, поэтому результат будет
a
d
3 ответов
Это comm
для:
comm -- выберите или отклоните строки, общие для двух файлов
вы хотите
comm -23 "File 1" "File 2"
, который будет подавлять вывод строки только в файле 2 и строки в обоих файлах, оставив только строки в файле 1. Больше ответов здесь, на вики Грега Вуледжа
можно использовать grep
:
grep -f file1.txt -vFx file2.txt
обратите внимание на использование флагов F, --fixed-strings
и x, --line-regexp
, чтобы принудительно выполнить сравнение с учетом всей строки.
попробуй такое
$ join file1.txt file2.txt -v 1
$ man join
-a FILENUM
print unpairable lines coming from file FILENUM, where FILENUM is 1 or 2, corresponding to FILE1 or FILE2
-v FILENUM
like -a FILENUM, but suppress joined output lines