2 つのファイルがありZipcode.txt
ます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
の郵便番号フィールドがZipcode.txt
の郵便番号フィールドと一致する場合、4 番目のフィールドをからAddress.csv
に変更します。必要な変更内容は次のとおりです。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
私が試したのはこれです:
awk -F',' 'BEGIN{OFS=FS}NR==FNR{a[$1]=1;next}a[$1]{$4="found"}1' Address.csv ZipCode.txt
答え1
これは、 の最初のフィールドの郵便番号がAddress.csv
のどこかにあるかどうかを検索しますZipcode.txt
:
awk -F, -v OFS="," 'NR==FNR {a[$1]++;next} $1 in a {$4="found"} 1' Zipcode.txt Address.csv
出力:
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
最後の行は、city
入力の 4 番目のフィールドではないため、予想どおりではないことに注意してください。 の最後の行にカンマが欠落している可能性がありますAddress.csv
。