私は巨大なファイルdatファイル(カンマ区切り)を持っています。2番目の列を「foo」に置き換える必要があります(3番目の列に「AB(引用符付き)」で始まる値がある場合は二重引用符付き)
これがサンプルinput.datです
"5000","ABC","AB8989"
"3000"," ","AB7676"
"2000"," ","A07444"
"4000"," ","BN0909"
これは私が使用しているコマンドです:
awk -F, -vOFS=, '{if($3 ~/^"AB/){$2="foo"}print;}' input.dat
このコマンドは、理想的には最初の 2 行のみに一致するはずですが、なぜ 3 行目にも一致するのかわかりません。正規表現で A の後に B を読み取っていないようです。提案してください。