2012-11-06 113 views
14

我想查找我的文本文件中包含字符串​​但不包含字符串"def"的所有行。我可以使用grep命令來完成此任務嗎?grep無字符串

+1

看起來你正在使用grep來幫助你瀏覽代碼庫;如果是這樣的話 - 我最近編寫了一個工具來幫助這個活動變得更容易:http://reviewboardstudents.wordpress.com/2012/10/22/ucosp-blog-post-sack-and-other-developer-shortcuts/希望它對你也有幫助 –

+0

太好了,我來看看! –

回答

26

任的這些都將做到:

grep -v "def" input_file | grep "abc" 

grep "abc" input_file | grep -v "def" 

如果你只是想看到標準輸出下面的輸出也將保留着色:

grep --color=always "abc" input_file | grep -v "def" 

The -v選項(代表「反向匹配」)表示grep忽略具有指定模式的行 - 在本例中爲def

+0

太好了,謝謝!當我的input_file很大時,第一個和第二個代碼之間的速度有什麼不同? –

+1

@MikaH。您可以在每個腳本命令前添加'time'來查看每個腳本需要多長時間。我認爲只有一個可以忽略的差異。 –

+0

關於保存着色的部分非常有用。再次感謝! –

1

這可能做到。

fgrep "abc" file | grep -v "def"