可以说我有一个像这样的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)
这个以及任何基于正则表达式的解决方案都假定前两个字段的值不包含逗号
这是一个变体:
egrep "^([^,]+,){2}12," file.csv
Run Code Online (Sandbox Code Playgroud)
优点是您可以简单地通过更改花括号中的数字来选择字段,而无需手动添加或减去模式的文字副本。