如何grep
在 CSV 文件中仅搜索一列,但在找到匹配项后输出整行?例如:
fish @ eats worms
bear @ eats fish
fish
在第 2 列中搜索将输出: bear @ eats fish
。
...使用 awk...
awk -F@ '{if ($2 ~ /fish/) { print $0; }}' <input file>
要使用 shell 变量,将单引号更改为双引号并转义 awk 变量(soo awk 仍然看到 $2 等,而不是 shell 对它们的扩展。
awk -F@ "{if (\$2 ~ /$find_me/ ) { print \$0; } }" <input_file>
使用grep
:
grep ^.*@.*fish.*$ file.txt