Ich habe 2 Dateien Zipcode.txt
und Address.csv
:
ZipCode.txt
12345
23456
34567
45678
Address.csv
12345,3587 main st,apt j1,city,new jersey
23456,4215 1st st. s.,suite a2,city,new jersey
65432,115 main st,,city,new jersey
45678,654 2nd st n.,city,new jersey
Wenn das Postleitzahlenfeld in Zipcode.txt
mit dem Postleitzahlenfeld in übereinstimmt , möchte ich das vierte Feld von in Address.csv
ändern . Folgendes möchte ich:city
found
12345,3587 main st,apt j1,found,new jersey
23456,4215 1st st. s.,suite a2,found,new jersey
65432,115 main st,,city,new jersey
45678,654 2nd st n.,found,new jersey
Folgendes habe ich versucht:
awk -F',' 'BEGIN{OFS=FS}NR==FNR{a[$1]=1;next}a[$1]{$4="found"}1' Address.csv ZipCode.txt
Antwort1
Dadurch wird gesucht, ob die Postleitzahl im ersten Feld Address.csv
irgendwo in gefunden wird Zipcode.txt
:
awk -F, -v OFS="," 'NR==FNR {a[$1]++;next} $1 in a {$4="found"} 1' Zipcode.txt Address.csv
Ausgabe:
12345,3587 main st,apt j1,found,new jersey
23456,4215 1st st. s.,suite a2,found,new jersey
65432,115 main st,,city,new jersey
45678,654 2nd st n.,city,found
Beachten Sie, dass die letzte Zeile nicht wie erwartet ist, da city
es sich nicht um das vierte Feld in der Eingabe handelt: In der letzten Zeile von fehlt wahrscheinlich ein Komma Address.csv
.