次の2つのファイルがあります。
a.txt
(タブ区切り、列が3つ、行が多すぎます):
city plate region
istanbul 36 marmara
trabzon 61 karadeniz
b.txt
(カンマ区切り、4列、多すぎる行):
name,city,age,nationality
mehmet,trabzon,,
murat,istanbul,,
john,london,,
私が望むのは、city
2番目の列(フィールド)が(最初の列 - )b.txt
にあることを確認し、ファイルが存在する場合はファイルを更新し、4番目の列()を「トルコ語」に設定することです。したがって、予想される結果は次のとおりです。a.txt
city
a.txt
b.txt
nationality
name,city,age,nationality
mehmet,trabzon,,turkish
murat,istanbul,,turkish
john,london,,
次のコマンドを試しましたが、目的の出力が生成されませんでした。
nawk 'BEGIN { FS = "\t" } FNR == NR {x[$1] = $1; next;} {FS=OFS=","} FNR>1{if ($2 in x) {($4 = "turkish")} } 1' a.txt b.txt
name,city,age,nationality
mehmet,trabzon,,
murat,istanbul,,
john,london,,
私のコマンドでエラーを見つける必要があります。
ベストアンサー1
スクリプトは正常に実行されます。私の考えでは、最初のファイルにタブの代わりに区切り文字でスペースがあるようです。
役に立たないものを取り除きBEGIN { FS = "\t" }
、それが真であることを確認してください。