首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个函数允许我在文本文件中的一组行的开头加上一个字符串?

是否有一个函数允许我在文本文件中的一组行的开头加上一个字符串?
EN

Stack Overflow用户
提问于 2019-04-07 18:15:32
回答 2查看 75关注 0票数 3

我试图把IP地址(在下面的截图中)加到每一行的开头,以了解它们的相对结果。

显示当前结果格式的文本文件

当前文件格式:

代码语言:javascript
复制
Host: 192.168.1.4 ()    
21  open    tcp     ftp     vsftpd 2.3.4    
23  open    tcp     telnet      Linux telnetd   
25  open    tcp     smtp        Postfix smtpd   
53  open    tcp     domain      ISC BIND 9.4.2    
Host: 192.168.1.6 ()    
21  open    tcp     ftp     Microsoft ftpd  
25  open    tcp     smtp        Microsoft ESMTP 6.0.2600.2180   
80  open    tcp     http        Microsoft IIS httpd 5.1 
135 open    tcp     msrpc       Microsoft Windows RPC   
139 open    tcp     netbios-ssn     Microsoft Windows netbios-ssn   

我已设法将第一个IP地址附加到每一行的开头,使用以下内容:

代码语言:javascript
复制
awk 'NR==1{IP="IP" FS $2 FS}NR!=1{$0=IP $0;print}' IPadd.txt > new.txt

有没有办法修改这个函数,以便在每一行的开头都有不同的IP,并生成这样的文件:

我想让新的文本文件读:

代码语言:javascript
复制
192.168.1.4 21  open    tcp     ftp     vsftpd 2.3.4    
192.168.1.4 23  open    tcp     telnet      Linux telnetd   
192.168.1.4 25  open    tcp     smtp        Postfix smtpd   
192.168.1.4 53  open    tcp     domain      ISC BIND 9.4.2
192.168.1.6 21  open    tcp     ftp     Microsoft ftpd  
192.168.1.6 25  open    tcp     smtp        Microsoft ESMTP 6.0.2600.2180   
192.168.1.6 80  open    tcp     http        Microsoft IIS httpd 5.1 
192.168.1.6 135 open    tcp     msrpc       Microsoft Windows RPC   
192.168.1.6 139 open    tcp     netbios-ssn     Microsoft Windows netbios-ssn   
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-07 18:18:48

你能试一下吗。

代码语言:javascript
复制
awk '/^Host:/{ip=$2;next} NF{print ip,$0}'  Input_file

输出如下。

代码语言:javascript
复制
192.168.1.4 21  open    tcp     ftp     vsftpd 2.3.4    
192.168.1.4 23  open    tcp     telnet      Linux telnetd   
192.168.1.4 25  open    tcp     smtp        Postfix smtpd   
192.168.1.4 53  open    tcp     domain      ISC BIND 9.4.2
192.168.1.6 21  open    tcp     ftp     Microsoft ftpd  
192.168.1.6 25  open    tcp     smtp        Microsoft ESMTP 6.0.2600.2180   
192.168.1.6 80  open    tcp     http        Microsoft IIS httpd 5.1 
192.168.1.6 135 open    tcp     msrpc       Microsoft Windows RPC   
192.168.1.6 139 open    tcp     netbios-ssn     Microsoft Windows netbios-ssn
票数 3
EN

Stack Overflow用户

发布于 2019-04-08 09:00:07

这可能对您有用(GNU sed):

代码语言:javascript
复制
sed '/^Host/h;//d;G;s/\(.*\)\nHost: \(.*\) ()/\2 \1/' file

复制当前主机行并将其附加到非主机行,操作主机行以只显示ip地址。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55562213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档