Ich habe zwei Texte. Einer davon ist dieser:
house structure
bank economy
rose animal
...
Und noch ein Text, der für jedes Wort mehr als ein „Label“ enthält:
house structure
bank economy
bank confort
rose plant
...
Ich muss zählen, ob das zweite Feld des ersten Textes mit EINEM VON VIELEN des zweiten Felds des zweiten Textes übereinstimmt. Beispielsweise ist das Wort „Haus“ sowohl im ersten als auch im zweiten eine Struktur, also +1. Das Wort „Bank“ des ersten Textes ist Wirtschaft und ist auch im zweiten Text EINES VON VIELEN, also ebenfalls +1. Das Wort „Rose“ ist im ersten als Tier gekennzeichnet, im zweiten jedoch nicht, also +0.
Am Ende brauche ich eine Anzahl von Punkten. Wie geht das am einfachsten? Danke für die Hilfe, es ist ein bisschen chaotisch.
Antwort1
Es ist keine Linux-Antwort, aber für solche Dinge würde ich beide Dateien in Excel portieren und sie dann mit VLookup und/oder Count vergleichen.
Antwort2
Basierend auf Ihrem Beispiel scheint es, als ob Sie herausfinden möchten, ob eine bestimmte Zeile aus der ersten Datei in der zweiten Datei vorhanden ist oder nicht. Wenn dies der Fall ist, können Sie Folgendes tun
grep -c -f file1 file2
Sehen Sie sich in diesem Zusammenhang auchDasUndDasPosten Sie, wenn die Geschwindigkeit ein Problem ist.
Antwort3
Wie wäre es mit
awk 'NR==FNR {a[$1]=$2; next;} a[$1]==$2' text1 text2
house structure
bank economy
oder wenn Sie eine tatsächliche Anzahl wünschen
awk 'NR==FNR {a[$1]=$2; next;} a[$1]==$2 {c[$1]++} END {for (i in c) print i, c[i]}' text1 text2
house 1
bank 1