sed +文字列を含む行を削除します(次の行を除く)

sed +文字列を含む行を削除します(次の行を除く)

このsedコマンドは、「rocommunity」という単語を含む行を削除します。

sed -i '/rocommunity/d' snmpd.conf

rocommunity hedona 127.0.0.1
rocommunity hedona linux1 
rocommunity hedona linux12
rocommunity hedona linux13
rocommunity hedona linux15
rocommunity hedona linux16
rocommunity hedona linux17
syscontact linux 67
syslocation UNKNOWN
trapcommunity hedona
trapsink  linux76 parshedona

rocommunityを含む行(127.0.0.1を含む行を除く)を削除するためにsedをどのように更新しますか?

予想出力:

rocommunity hedona 127.0.0.1
syscontact linux 67
syslocation UNKNOWN
trapcommunity hedona
trapsink  linux76 parshedona

ベストアンサー1

2つの検索を組み合わせることができます。

sed  '/rocommunity.*127\.0\.0\.1/p;/rocommunity/d' /path/to/input

/rocommunity.*127\.0\.0\.1/p- rocommunityfor と一致する行からその127.0.0.1行を印刷します。

/rocommunity/d- 一致する行ではrocommunity印刷しません。

その他の内容はすべて印刷されます。

ファイルを変更するには、ファイル必要な操作を確認してからをsed --in-place使用してファイルを変更できます。

おすすめ記事