2017-01-24 5 views
1

ワイルドカードを使用してLinuxの行から特定のパターンを削除する方法はありますか?ワイルドカードを使用してLinuxの行から特定のパターンを削除するには

test07cel20: ((host=test07db04.com,port=1832,community=public,(host=test07db02.com,port=1832,community=public),(host=172.186.100.63,port=162,community=public,type=ASR)) 

は、私はいくつかのワイルドカード方法を探して、ケース(私は変数を意味する)ことにより、ケースを変更します上記の行から(host=172.186.100.63,port=162,community=public,type=ASR)172.186.100.63publicを削除したいです。

また、このパターンは常に行末に存在します。場合によってはtype=ASRtype=asrになります。したがって、パターンhost=*,port=162,community=*,type=ASRを削除するための上記のすべてのシナリオをカバーする考えがあれば。どんな助けでも大歓迎です。

予想される出力は

(host=test07db04.com,port=1832,community=public),(host=test07db02.com,port=1832,community=public) 
+2

適切な書式で投稿を編集し、期待される出力を追加します。 – Inian

+1

[編集ヘルプ](http://stackoverflow.com/editing-help)をご覧ください。 – Cyrus

+0

あなたの編集は不明瞭にしました。それは1行で、1行で表示する必要があります(4つのインデントを持つコードとして)。 –

答えて

3

あなたのソリューションが必要以上に複雑です。

sed 's/,(host=[^(]*,port=162,[^(]*type=[Aa][Ss][Rr])//' 
+0

素晴らしいMichael.itが働いています。 –

関連する問題