我的问题是关于文本处理的:
在列表中,我具有以下格式的IP地址和计算机名称:
IP address: 192.168.1.25
Computer name: computer7office
IP address: 192.168.1.69
Computer name: computer22office
IP address: 192.168.1.44
Computer name: computer12personal
我需要的输出:
This computer ip address is xxx.xxx.x.xx and is under the name zzzzzzzzzz
如何使用命令行将列表中的IP和名称自动复制到输出文件?您能否解释一下您的命令,因为当我不得不复制/粘贴我不理解的内容时,这是很遗憾的。
在中sed
,假设您的列表位于名为的文件中file
,则可以使用:
sed -n '/ss: /N;s/\n//;s/IP address:/This computer ip address is/;s/Computer name:/ and is under the name/p' file
-n
在我们要求之前不要打印任何东西/ss: /
找到模式ss:
(以与匹配线IP address:
)N
也阅读下一行,以便我们可以加入他们 ;
分隔命令,例如在shell中s/old/new/
替换old
为new
s/\n//
删除两行之间的换行p
打印我们处理过的线条当您看到所需内容时,重复> newfile
在其末尾添加的命令以将修改后的文件写入newfile
更可理解的是:
sed -n '{
/ss: /N
s/\n//
s/IP address:/This computer ip address is/
s/Computer name:/ and is under the name/p
}' file | tee newfile
(tee
有助于写入newfile
并同时显示输出)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句