Linux grep命令

时间:2015-04-17 22:19:10

标签: linux grep

我可以使用grep命令查找文件中包含" abc"的所有行。在其中,但排除以#34; xyz"?

结尾的行

例如grep' abc' fileName(某种方式排除以&#34结尾的所有行; xyz")

3 个答案:

答案 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$'