ファイルをgrepして2行の情報を探し、それらの行のみを出力する方法を知っている人なら誰でも。ネットワーク 10.1.1.x - 10.1.254.x で nmap スキャンを実行しており、ポート 22 が開いているすべての IP を探しています。Nmap はファイルを作成しますが、次の 3 種類のエントリを持つエントリが含まれています
Nmap scan report for 10.1.0.1
<br>Host is up 93.1s latency).
<br>Scanned at (Date) (Time)
<br>Port State Service
<br>22/tcp filtered ssh
Nmap scan report for 10.1.0.2
<br>Host is up 93.1s latency).
<br>Scanned at (Date) (Time)
<br>Port State Service
<br>22/tcp open ssh
Nmap scan report for 10.1.0.3
<br>Host is up 93.1s latency).
<br>Scanned at (Date) (Time)
<br>Port State Service
<br>22/tcp open ssh
Nmap scan report for 10.1.0.4
<br>Host is up 93.1s latency).
<br>Scanned at (Date) (Time)
<br>Port State Service
<br>22/tcp filtered ssh
ファイルをgrepして1行目と5行目を返し、5行目にopenが含まれている場合にのみ探しています。
私は試しました:grep -e '10.1' -e 'open' file.txt
これは私が望むものをネットにしますが、すべての1行目と1行目と5行目を返します
私は試しました:sed -e '/10.1./,/open/!d' file.txt
しかし、これは使用するのと同じものを返します: cat file.txt
も試しawk '/10/ && /open/' file.txt
ましたが、何も返されません
助言がありますか