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! :)
我可以使用 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! :)