Linux grep 命令

Linux grep command

我可以使用 grep 命令查找文件中包含 "abc" 的所有行,但排除以 "xyz" 结尾的行吗?

例如 grep 'abc' fileName(排除所有以 "xyz" 结尾的行的方法)

试试这个:

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

使用两个 grep 管道连接在一起的命令。第一个匹配 abc,第二个删除以 xyz.

结尾的那些
grep abc filename | grep -v 'xyz$'

awk 适合这种情况:

awk '/abc/ && !/xyz$/' input

使用awk! :)