
如何在我的egrep 之間加入換行符?
# nmap -sP 192.168.1.0/24 | egrep 'MAC|report'
我想在兩行之後添加一個換行符。最有效的速記是什麼?
本質上我希望結果像這樣輸出:
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
我想在兩行之後添加一個換行符。
這個字面問題的解決方案是這裡。在你的情況下:
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