2012-04-05 4 views
7

次の例を使用して、大括弧を含む 'ABC'と一致する行をスキップしながら、 'ABC'のみを含む行を除外する必要があります。LinuxでRegExpヘルプが必要な場合大括弧を含む行を除外するBash grepコマンド

ここで
 
2012-04-04 04:13:48,760~sample1~ABC[TLE 5332.233 2/13/2032 3320392]:CAST 
2012-04-04 04:13:48,761~sample2~ABC 
2012-04-04 04:13:48,761~sample3~XYZ[BAC.CAD.ABC.CLONE 232511]:TEST 

私が持っているものですが、今のところ私は正常に角括弧で行をフィルタリングすることができないよ:

bash-3.00$ cat Metrics.log | grep -e '[^\[\]]' | grep -i 'ABC'

助けてください?

+0

+1、所望の出力の明確な説明

grep -i 'ABC' Metrics.log | grep -v "[[]" | grep -v "ABC\w"

入力してみてくださいいくつかのサンプルコード!がんばろう。 – shellter

答えて

3

コメントに基づいて編集:

2012-04-04 04:13:48,760~sample1~ABC[TLE 5332.233 2/13/2032 3320392]:CAST 
2012-04-04 04:13:48,761~sample2~ABC 
2012-04-04 04:13:48,761~sample3~XYZ[BAC.CAD.ABC.CLONE 232511]:TEST 
2012-04-04 04:13:48,761~sample4~XYZ 
2012-04-04 04:13:48,761~sample5~ABCD 
2012-04-04 04:13:48,761~sample6~ABC:TEST 

出力::サン​​プル入力のための

2012-04-04 04:13:48,761~sample2~ABC 
2012-04-04 04:13:48,761~sample6~ABC:TEST 
+1

それがうまくいく場合は、正しい答えを記入してもよろしいですか?ありがとう! – GetSet

+0

注:Cat Metrics.logには、最初の 'grepの入力としてそれを指定する必要はありません。 grep -i 'ABC' Metrics.log | grep -v "[[]" ' – matchew

+0

ありがとうございます。回答としてマーク。猫については注意してください。もう1つのケース:ABCDのような誤ったマッチはスキップする必要がありますが、ABC:TESTはスキップする必要があります。 –

1
$cat log | grep -v '\[.*\]' | grep ABC 
+0

これも同様です。ありがとう –

関連する問題