我可以使用grep命令查找文件中包含" abc"的所有行。在其中,但排除以#34; xyz"?
结尾的行例如grep' abc' fileName(某种方式排除以&#34结尾的所有行; xyz")
答案 0 :(得分:5)
试试这个:
hzhang@dell-work ~ $ cat sample.csv
abc, xyz
abc,1
abc,2
abc,3,xyz
hzhang@dell-work ~ $ grep abc sample.csv |grep -v "xyz$"
abc,1
abc,2
-v的解释
-v, --invert-match
Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX.)
如果您可以使用awk
,请检查模式:
hzhang@dell-work ~ $ awk '/abc/ && !/xyz$/' sample.csv
abc,1
abc,2
答案 1 :(得分:3)
awk
适合这种情况:
awk '/abc/ && !/xyz$/' input
使用awk!:)
答案 2 :(得分:2)
使用管道连接的两个grep
命令。第一个匹配abc
,第二个匹配以xyz
结尾的匹配。
grep abc filename | grep -v 'xyz$'