2つのテキストファイルを比較し、不足している部分を保存する

2つのテキストファイルを比較し、不足している部分を保存する

テキスト ファイルが 2 つあります。

最初のテキストファイル:

Hello
Hi
Hola
Bonjour

2番目のテキストファイル:

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

最初のファイルには存在するが 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  

関連情報