我有一个巨大的文件 dat 文件(逗号分隔)。在其中我必须用“foo”替换第二列(带双引号,如果第三列的值以“AB(带引号)
这是示例 input.dat
"5000","ABC","AB8989"
"3000"," ","AB7676"
"2000"," ","A07444"
"4000"," ","BN0909"
这是我正在使用的命令:
awk -F, -vOFS=, '{if($3 ~/^"AB/){$2="foo"}print;}' input.dat
理想情况下,这个命令应该只匹配第一两行,但我不知道为什么它也匹配第三行。看起来它不是在 reg ex 中的 A 之后读取 B。请建议。