我需要将 nmap 输出中的多行合并为一行
FROM:
Nmap scan report for example.com
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
1720/tcp open h323q931
5432/tcp open postgresql
Nmap scan report for example.com
22/tcp open ssh
80/tcp open http
81/tcp open hosts2-ns
111/tcp open rpcbind
1720/tcp open h323q931
Nmap scan report for example.com
22/tcp open ssh
111/tcp open rpcbind
1720/tcp open h323q931
Nmap scan report for example.com
22/tcp open ssh
TO:
Nmap scan report for example.com
22/tcp open ssh 80/tcp open http 111/tcp open rpcbind 1720/tcp open h323q931 5432/tcp open postgresql
Nmap scan report for example.com
22/tcp open ssh 80/tcp open http 81/tcp open hosts2-ns 111/tcp open rpcbind 1720/tcp open h323q931
Nmap scan report for example.com
22/tcp open ssh 111/tcp open rpcbind 1720/tcp open h323q931
Nmap scan report for example.com
22/tcp open ssh
对于 1 台主机,应该有 2 行。第一行从 Nmap 扫描开始...另一行是开放端口信息。我看到很多关于用 awk 将多行变成 1 行的问题,但无法想出一些东西。
为什么不是这个:
awk '$0~"Nmap"{if(output!="")print output;print;output=""}$0!~"Nmap"{output=output""$0" "}END{if(output!="")print output}'
如果 $0 有“Nmap”,则打印该行。如果没有,请跟踪发生的情况,然后在新的 Nmap 时打印它。
The END{}
块负责触发未打印的内容。请注意,您正在寻找Nmap
打印一些东西。还要注意条件$0!~"Nmap"
以避免缓冲第一行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)