我有一个看起来像这样的文件
ON,111111,TEN000812,Super,7483747483,767,Free
ON,262762,BOB747474,SuperMan,4347374,676,Free
ON,454644,FRED84848,Super Man,65757,555,Free
我需要完全匹配第四列中的值。因此,如果我要搜索“超级”,则只需要返回“超级”即可。
ON,111111,TEN000812,Super,7483747483,767,Free
同样,如果我要寻找“超人”,则需要返回该行。
ON,454644,FRED84848,Super Man,65757,555,Free
我尝试使用grep,但是grep将匹配所有包含Super的实例。因此,如果我这样做:
grep -i "Super" file.txt
它返回所有行,因为它们都包含“超级”
ON,111111,TEN000812,Super,7483747483,767,Free
ON,262762,BOB747474,SuperMan,4347374,676,Free
ON,454644,FRED84848,Super Man,65757,555,Free
我也对awk感到厌倦,并且我相信我已经接近了,但是当我这样做时:
awk '$4==Super' file.txt
我仍然得到这样的输出:
ON,111111,TEN000812,Super,7483747483,767,Free
ON,262762,BOB747474,SuperMan,4347374,676,Free
我已经待了几个小时了,在这一点上任何帮助将不胜感激。
答案 0 :(得分:6)
您很亲密,或者我应该说很亲密,只需将字段定界符放在解决方案中以逗号开头,就可以了。
awk 'BEGIN{FS=","} $4=="Super"' Input_file
在与具有字符串值的第4个字段进行比较时,OP尝试进行的另一件事是,字符串应包装在"
或者,如果您想将要比较的值作为awk
变量,然后尝试遵循。
awk -v value="Super" 'BEGIN{FS=","} $4==value' Input_file
答案 1 :(得分:3)
您实际上很亲密,可以尝试:
awk -F, '$4=="Super" {print}' file.txt
我发现此表格更容易掌握。虽然比@ RavinderSingh13稍长
-F是字段分隔符,在这种情况下为逗号
接下来你有一个条件,接着是行动
条件是检查第四个字段是否具有字符串Super
如果找到了字符串,请打印出来