1
我有一個巨大的文件dat文件(以逗號分隔)。在這我要替換「foo」的第2列(用雙引號,如果第3列具有價值開始「AB(帶引號)在awk中用雙引號搜索字符串
這裏是input.dat
"5000","ABC","AB8989"
"3000"," ","AB7676"
"2000"," ","A07444"
"4000"," ","BN0909"
這是樣板我使用的命令:
awk -F, -vOFS=, '{if($3 ~/^"AB/){$2="foo"}print;}' input.dat
此命令理想情況下應該只匹配第一個兩行,但我不知道爲什麼它還可選配3號線看起來是不是REG前一後法B 。請建議。
我使用的HP-UNIX。如果我不必比較雙引號,那麼它與AB匹配。但是雙引號只有A被選中。 – Aarav
我在腳本中意外地寫了^「AB *」正則表達式。^「AB工作正常。但是爲什麼^「AB *允許」A0? – Aarav
'B *'確實意味着'0'或更多'B',所以它會匹配A,AB,ABB,ABBB等 – Jotne