改行を含む grep の整理

改行を含む grep の整理

egrep の間に改行を追加するにはどうすればよいでしょうか?

# nmap -sP 192.168.1.0/24 | egrep 'MAC|report'

2 行それぞれの後に改行を追加したいと思います。最も効率的な省略形は何ですか?

基本的には、結果は次のように出力されるようにしたいと思います。

Nmap scan report for 192.168.1.7
MAC Address: C4:42:02:xx:xx:xx (Samsung Electronics Co.)

Nmap scan report for 192.168.1.8
MAC Address: 04:F1:3E:xx:xx:xx (Apple)

Nmap scan report for 192.168.1.10
MAC Address: 70:18:8B:xx:xx:xx (Hon Hai Precision Ind. Co.)

答え1

2 行のそれぞれの後に改行を追加したいと思います。

この文字通りの問題の解決策はここあなたの場合:

nmap -sP 192.168.1.0/24 | egrep 'MAC|report' | sed '0~2 s/$/\n/g'

nmapただし、一部のレポートで行が欠落している出力を見たことがあります。そのため、(盲目的に行数を数えるのではなく)最初の行でない限り、MACすべての の前に改行を挿入することをお勧めします。Nmap

nmap -sP 192.168.1.0/24 | egrep 'MAC|report' | sed '1! s/^Nmap/\nNmap/'

答え2

私は思いついた

nmap -sP 192.168.10/24 | egrep 'MAC|report|Host is up' | sed  '/Host is/c\\r'

これにより、追加の文字列「Host is up」が検索され、それがキャリッジ リターンに置き換えられます。

出力は次のようになります。

Nmap scan report for 192.168.1.1

MAC Address: 00:0E:C6:C7:93:38 (Asix Electronics)
Nmap scan report for  (192.168.1.254)

MAC Address: 1C:C1:DE:80:53:55 (Hewlett Packard)
Nmap scan report for 192.168.1.250

関連情報