2016-11-24 4 views
0

正規表現文字列と文字列に気にいらを除外する:私は、テストコマンドgrepのは、私がテストファイルだった

grep -i -E -e "b[\'\.]*a[\'\.]*s[\'\.]*e[\'\.]*6[\'\.]*4[\'\.]*_[\'\.]*d[\'\.]*e[\'\.]*c[\'\.]*o[\'\.]*d[\'\.]*e[\'\.]*" test.txt 

を持っていた。しかし、結果は行が含まれて

base64_decode(xxx) 
bas'.'e64'.'_decode(xxx) 
ba'.'s'.'e64'.'_deco'.'de(xxx) 
xxxxxxx 
ttttttt 
bbbbbb 
vvvvvvv 
b'.'a'.'s'.'e'.'64'.'_de'.'co'.'de(xxx) 

base64_decode(xxx) 

この行を削除します:

base64_decode(xxx) 

このライン含める必要があります。

bas'.'e64'.'_decode(xxx) 
ba'.'s'.'e64'.'_deco'.'de(xxx) 
b'.'a'.'s'.'e'.'64'.'_de'.'co'.'de(xxx) 

私は私の正規表現文字列が間違っていると思いますが。

だから、私を助けてください、ありがとう~~~あなたがこれを

+0

ようこそスタックオーバーフロー!コードを書式設定してスクロールする必要がないようにすることで、お手伝いをすることができます。 – zhon

+0

あなたがしたいことを教えてくれたことを忘れました。行番号1,3,8を印刷すると期待される出力が得られますが、それはあなたが探している解決策ではないと思われます。 –

答えて

0

肯定的な先読みのサポートが必要です。しかし、ここで、それは次のとおりです。

^b(?=[ase64_dcod]*')[.']*a[.']*s[.']*e[.']*6[.']*4[.']*_[.']*d[.']*e[.']*c[.']*o[.']*d[.']*e[.']*.+$ 

基本的に単一引用符は、文字列の残りの部分に一致する前の初期「b」の後にどこかに存在しているかどうかを確認します。

サポートされている場合は、*の後に所有者修飾子(+)を使用すると、検索が高速化する可能性があります。

https://regex101.com/r/UiCyCN/2

0

てみませんか?

cat <file> | grep -v base64 

それともとして

grep -v base64 <file> 
+4

または単に 'grep -v base64 ' – Bohemian

1
grep "'" file 

ボヘミアン出力によってコメント:私はgrepのを知らないので、私は、この正規表現のように動作するかどうかわからないんだけど

 
bas'.'e64'.'_decode(xxx) 
ba'.'s'.'e64'.'_deco'.'de(xxx) 
b'.'a'.'s'.'e'.'64'.'_de'.'co'.'de(xxx) 
関連する問題