![使用换行符组织 grep](https://linux22.com/image/1543075/%E4%BD%BF%E7%94%A8%E6%8D%A2%E8%A1%8C%E7%AC%A6%E7%BB%84%E7%BB%87%20grep.png)
如何在 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