我有一个看起来像这样的文件
ON,111111,TEN000812,Super,7483747483,767,Free
ON,262762,BOB747474,SuperMan,4347374,676,Free
ON,454644,FRED84848,Super Man,65757,555,Free
Run Code Online (Sandbox Code Playgroud)
我需要完全匹配第四列中的值。因此,如果我正在搜索“Super”,我需要它仅返回带有“Super”的行。
ON,111111,TEN000812,Super,7483747483,767,Free
Run Code Online (Sandbox Code Playgroud)
同样,如果我正在寻找“超人”,我需要返回确切的行。
ON,454644,FRED84848,Super Man,65757,555,Free
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用 grep,但 grep 将匹配所有包含 Super 的实例。所以如果我这样做:
grep -i "Super" file.txt
Run Code Online (Sandbox Code Playgroud)
它返回所有行,因为它们都包含“超级”
ON,111111,TEN000812,Super,7483747483,767,Free
ON,262762,BOB747474,SuperMan,4347374,676,Free
ON,454644,FRED84848,Super Man,65757,555,Free
Run Code Online (Sandbox Code Playgroud)
我也厌倦了 awk,我相信我已经接近了,但是当我这样做时:
awk '$4==Super' file.txt
Run Code Online (Sandbox Code Playgroud)
我仍然得到这样的输出:
ON,111111,TEN000812,Super,7483747483,767,Free
ON,262762,BOB747474,SuperMan,4347374,676,Free
Run Code Online (Sandbox Code Playgroud)
我已经在这里工作了几个小时,在这一点上,任何帮助将不胜感激。
您很接近,或者我应该说非常接近,只需在您的解决方案中将字段分隔符作为逗号就可以了。
awk 'BEGIN{FS=","} $4=="Super"' Input_file
Run Code Online (Sandbox Code Playgroud)
在与具有字符串值的第 4 个字段进行比较时,OP 的尝试还有一件事,应该将字符串包裹在 "
或者,如果您想提及要作为awk变量进行比较的值,请尝试以下操作。
awk -v value="Super" 'BEGIN{FS=","} $4==value' Input_file
Run Code Online (Sandbox Code Playgroud)