Vergleichen von zwei Textdateien und Speichern der fehlenden

Vergleichen von zwei Textdateien und Speichern der fehlenden

Ich habe zwei Textdateien:

erste Textdatei:

Hello
Hi
Hola
Bonjour

Zweite Textdatei:

Hi 
Bonjour

Wie kann ich die Unterschiede zwischen ihnen unabhängig von der Zeilennummer ausgeben, d. h. ich möchte die Ausgabe speichern, die ist

Hello
Hola

In eine neue Textdatei

Antwort1

Es ist nicht klar, was „die Unterschiede“ bedeuten, aber hier ist etwas, das Ihren gegebenen Eingaben und Ausgaben entspricht:

$ cat >1
Hello
Hi
Hola
Bonjour

$ cat >2
Hi
Bonjour

$ diff  --old-line-format=''  <(sort 1)  <(sort 2)  >new

$ cat new
Hi
Bonjour

Antwort2

So geben Sie ganze Zeilen aus, die in der ersten Datei, aber nicht in der zweiten vorhanden sind:

grep -vxFf second first

Alternativ können Sie die Dateien sortieren und dann Folgendes verwenden comm:

comm -23 <(sort first) <(sort second)

Antwort3

Dieses Problem kann durch die Verwendung des Befehls awk gelöst werden:

awk 'NR==FNR{uu[$1]=1}NR!=FNR&&uu[$1]!=1{print}' second first  

verwandte Informationen