我想搜索包含“uploaded”但不包含“09”的行
有没有办法用 grep 来做到这一点?
(如果重要的话,则是 CentOS 5.6)。
答案1
我通常使用链接 grep 来执行此操作。
grep uploaded $file | grep -v 09
答案2
您可以使用 grep 的 -v 选项来反转匹配,以便
grep uploaded file | grep -v 09
将执行您想要的操作。这将找到包含 uploaded 的行,这些行将通过管道传递到 grep 命令中,以忽略其中包含 09 的行。
答案3
这不是使用grep
- 但任何时候我的需求不仅仅是基本的grep
,我都会转向我最喜欢的sed
。当然,任何时候我必须将grep
命令链接在一起......
使用此命令来执行此操作:
sed -n '/09/d; /uploaded/p' file
仅一个命令(而不是两个)。
答案4
简单尝试一下:
( grep -v 09 | grep uploaded ) < file
例子:
$ cat file
1 uploaded 09
2 09
3 uploaded
4 text
$ ( grep -v 09 | grep uploaded ) < file
3 uploaded