2011-12-24 12 views
1

テキストファイルから不要な行を削除したいと思います。私はこのようなgrep -vを使用していますgrepを使用してテキストファイルから複数の行を削除します。

grep -v 'error|fault|unkownn' input.txt > out.txt 

それは1つの単語ではなく複数の単語で動作しています。私は何かが欠けていましたか

+1

私はこれはすでにここに答えたと思います:http://stackoverflow.com/questions/364105/using-grep-with-regular-expression-to-filter-アウトマッチ、それでしたか? – jstarek

+0

@jstarekあなたは正しいです、私は1時間SOを検索しましたが、それを見つけることができませんでした、なぜ私から隠れているのか分かりません:)。ご協力いただきありがとうございます!! – raindrop

答えて

3

|は、grep拡張正規表現モードで動作しているときにのみ、正規表現として扱われます。だから、次のいずれかを実行する必要があります。

# Escape the | so that it's treated as a regex control character 
grep -v 'error\|fault\|unkownn' input.txt > out.txt 

# -E enables extended regex mode 
grep -vE 'error|fault|unkownn' input.txt > out.txt 

# egrep = grep -E 
egrep -v 'error|fault|unkownn' input.txt > out.txt 
+0

ありがとうございます! – raindrop

+0

**ようこそStackOverflow **へ。 [チェックマークサイン](http://i.imgur.com/uqJeW.png)を押すことで、問題が解決した場合はその答えを受け入れることを忘れないでください。良いQ&Aが見えるときは、[灰色の三角形](http://i.imgur.com/kygEP.png)を使って投票してください。他の人に評判のポイントを与えることは、あなたの評判ポイントへの控除を意味するものではありません(あなたが賞金を掲示していない限り) –

関連する問題