ここで私の構文の何が問題になっていますか?
awk -F '|' 'sub/\s*\w*/,"Visit our website!","$3"' merchant_report
回ると思われる
|bob|jones| blagblag| texas
|tom|markus| | alabama
の中へ
|bob|jones|Visit our website!| texas
|tom|markus| | alabama
ここで私の構文の何が問題になっていますか?
awk -F '|' 'sub/\s*\w*/,"Visit our website!","$3"' merchant_report
回ると思われる
|bob|jones| blagblag| texas
|tom|markus| | alabama
の中へ
|bob|jones|Visit our website!| texas
|tom|markus| | alabama
この行はあなたが望むことをするかもしれません:
awk -F'|' -v OFS="|" 'NR==1{$4="Visit our website!"}1' file
あなたのawkコードで:
FS
は必要ありません。直接sub
設定するだけです。$3
sub( )
、構文が正しくありません。あなたは詳細情報を得ることができますman gawk
$3
ん$4
。あなたの行がで始まるので|
NR==1
そうしないと、awk がすべての行で変更を行います。コードの例:
kent$ cat file
|bob|jones| blagblag| texas
|tom|markus| | alabama
kent$ awk -F'|' -v OFS="|" 'NR==1{$4="Visit our website!"}1' file
|bob|jones|Visit our website!| texas
|tom|markus| | alabama
ではawk
、フィールドに特定の行の新しい値を割り当てるだけです。置換アプローチに慣れている場合は、次を試してくださいsed
。
sed '1s/|[^|]*/|Visit our website!/3' file
|bob|jones|Visit our website!| texas
|tom|markus| | alabama