使用Grep搜索CSV文件

Dav*_*vid 22 csv shell

可以说我有一个像这样的csv文件:

a,b1,12,
a,b1,42,
d,e1,12,
r,12,33,
Run Code Online (Sandbox Code Playgroud)

我想使用grep只返回第三列= 12的行.所以它会返回:

a,b1,12,
d,e1,12,
Run Code Online (Sandbox Code Playgroud)

但不是:

r,12,33,
Run Code Online (Sandbox Code Playgroud)

正则表达式的任何想法都可以让我这样做吗?

gle*_*man 31

我会直接跳到awk来测试这个值

awk -F, '$3 == 12' file.csv
Run Code Online (Sandbox Code Playgroud)

这个以及任何基于正则表达式的解决方案都假定前两个字段的值不包含逗号

  • 我真的需要学习`awk`!我从 `tr` 到 `sed` 再到 perl 没有接触 `awk` (2认同)

Viv*_*ath 10

grep "^[^,]\+,[^,]\+,12," file.csv
Run Code Online (Sandbox Code Playgroud)


Pau*_*ce. 5

这是一个变体:

egrep "^([^,]+,){2}12," file.csv
Run Code Online (Sandbox Code Playgroud)

优点是您可以简单地通过更改花括号中的数字来选择字段,而无需手动添加或减去模式的文字副本。