2012-04-17 2 views
21

以外のすべての行をリストする "H"の直後にない文字 "T"を含むテキストファイルからすべての行を自動的に削除しようとしています。私はgrepを使用して、別のファイルに出力を送信していますが、私はこれを行うのに役立つ魔法の正規表現を思いつくことができません。Grep Regex:

grepが使用する正しいツールでない場合は、awk、sedなどのLinuxツールを使用しても構いません。

答えて

51

grep -v 'T[^H]' 

-v:印刷行が[^ H]

と一致しないが: `の両方のインスタンスを任意の文字に一致しますが、H

+2

*'必要はありません。 grepがマッチを探している行全体をスキャンするので、 –

+0

あなたに感謝します。これを反映するように編集しました。 – byrondrossos

9

あなたが行うことができます。

grep -v 'T[^H]' input 

-vは、それがパターンと一致する行を表示されていないのgrepの逆一致オプションです。

使用される正規表現は、です。この正規表現は、Tの後にH以外の文字が続く行に一致します。

それを行う必要があります