gpt4 book ai didi

linux - 删除被空行包围的行

转载 作者:太空宇宙 更新时间:2023-11-04 09:46:18 25 4
gpt4 key购买 nike

基本上,我有 nmap 的输出,它为我提供了一个 IP,然后是其下的开放端口列表,后跟一个空行。我已经过滤掉了我不再需要的端口(例如 grep -v http),但我不知道如何删除没有后续端口的 IP 地址。

有没有办法用 sed 做到这一点?

示例数据:

Nmap scan report for 1.1.1.1
3389/tcp open ms-term-serv
5357/tcp open unknown
5432/tcp open postgresql
8080/tcp open http-proxy
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown

Nmap scan report for 2.2.2.2

Nmap scan report for 3.3.3.3
80/tcp open http
443/tcp open https
6646/tcp open unknown
8000/tcp open http-alt
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49156/tcp open unknown
49157/tcp open unknown

最佳答案

使用 awk,您可以简单地执行 awk '$2' ORS='\n\n' FS='\n' RS= file:

$ awk '$2' ORS='\n\n' FS='\n' RS= file
Nmap scan report for 1.1.1.1
3389/tcp open ms-term-serv
5357/tcp open unknown
5432/tcp open postgresql
8080/tcp open http-proxy
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown

Nmap scan report for 3.3.3.3
80/tcp open http
443/tcp open https
6646/tcp open unknown
8000/tcp open http-alt
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49156/tcp open unknown
49157/tcp open unknown

如果在先前脚本中添加到文件末尾的额外换行符是一个问题,则使用此替代方法:

awk '/^Nmap/{h=$0;i=NR;next}NR==i+1{if($0){print h;p=1}else p=0}p' file

关于linux - 删除被空行包围的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15936327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com