У меня есть два текстовых файла:
первый текстовый файл:
Hello
Hi
Hola
Bonjour
Второй текстовый файл:
Hi
Bonjour
Как я могу вывести различия между ними независимо от номера строки, т.е. я хочу сохранить вывод, который является
Hello
Hola
В новый текстовый файл
решение1
Неясно, что означают «различия», но вот что-то, что соответствует вашим данным на входе и выходе:
$ cat >1
Hello
Hi
Hola
Bonjour
$ cat >2
Hi
Bonjour
$ diff --old-line-format='' <(sort 1) <(sort 2) >new
$ cat new
Hi
Bonjour
решение2
Чтобы вывести целые строки, которые есть в первом файле, но отсутствуют во втором:
grep -vxFf second first
Либо отсортируйте файлы, а затем используйте comm
:
comm -23 <(sort first) <(sort second)
решение3
Эту проблему можно решить с помощью команды awk:
awk 'NR==FNR{uu[$1]=1}NR!=FNR&&uu[$1]!=1{print}' second first