![ファイルから特定の行と周囲の行を削除する方法は? [コピー]](https://linux33.com/image/10142/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89%E7%89%B9%E5%AE%9A%E3%81%AE%E8%A1%8C%E3%81%A8%E5%91%A8%E5%9B%B2%E3%81%AE%E8%A1%8C%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
tcpdumpファイルがあります。
特定のパケットを破棄したい。持っているので簡単に発見できます。
0x0000: a6a6 a6a6 a6a6 a6a6 ........
データの最初の行として
パケット全体は次のとおりです(比較する)良い:
16:24:46.132673 00:35:1a:71:91:37 (oui Unknown) > 05:05:05:c5:05:05 (oui Unknown), ethertype Unknown (0x88be), length 60:
0x0000: a6a6 a6a6 a6a6 a6a6 0101 2400 00b4 b83e
0x0010: 931f 00be 7c80 545a 0202 0000 0000 00a5
0x0020: a5a5 a500 0000 0000 0000 0000 0000
それで私が言いたいことはこうです。
「このパターンを含む行、パターンの前の行、パターンの後の2行を削除してください。」
sed、awk、grep どちらも大丈夫です。例えば
$ sed -i 'magic' file
魔法に代わるアイデアはありますか?
答え1
結果はvimを使う'、詳細は次のとおりです。
$ vim -Nes "+g/a6a6\ a6a6/.-1,.+2d" '+w !tee' '+q!' file >newfile