2012-11-06 10 views
14

文字列​​を含むテキストファイル内のすべての行を検索したいが、文字列"def"は含まれていない。このタスクを実行するためにgrepコマンドを使用できますか?grep with string

+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" 

-vオプション( "invert match"の略)は、指定されたパターン(この場合はdef)の行を無視するようにgrepに指示します。

+0

すばらしい、ありがとう! input_fileが大きければ、最初のコードと2番目のコードの間に速度差がありますか? –

+1

@MikaH。それぞれのスクリプトコマンドの前に 'time'を追加して、どれぐらい時間がかかるかを知ることができます。私は無視できる差しかないと思う。 –

+0

着色を保存する部分は本当に便利です。再度、感謝します! –

1

これは可能性があります。

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