jushjay 发表于 2017-12-21 05:56:30

关于sed插入用法求解,跪求~

各位大神,请教一个关于sed或awk命令实现以下功能的方法:

文件ip.txt的内容如下:
IP段的一         IP段的二            IP段的三
106.75.58.72/24101.52.131.65/23 106.75.176.56/20
45.249.244.141/20123.59.44.181/20 106.75.152.1/20

现在需要使用sed 或awk或者其他办法将插入的新的内容如下排列:
IP段的一         IP段的二            IP段的三
106.75.58.72/24101.52.131.65/23 106.75.176.56/20
111.111.111.111222.222.222.222333.333.333.333
45.249.244.141/20123.59.44.181/20 106.75.152.1/20
444.444.444.444   555.555.555.555   666.666.666.666


我的想法以及操作:
一、用sed /a\的方式如愿的插入了
# sed -i'/'45.249.244.141'/a\'444.444.444.444'' 2.txt
# cat 2.txt
IP段的一         IP段的二            IP段的三
106.75.58.72/24101.52.131.65/23 106.75.176.56/20
111.111.111.111
45.249.244.141/20123.59.44.181/20 106.75.152.1/20
444.444.444.444

但是再次插入时:
# sed'/'101.52.131.65'/a\\t\t'222.222.222.222'' 2.txt
IP段的一         IP段的二            IP段的三
106.75.58.72/24101.52.131.65/23 106.75.176.56/20
                        222.222.222.222
111.111.111.111
45.249.244.141/20123.59.44.181/20 106.75.152.1/20
444.444.444.444

结果:
sed并不会将111.111.111.111 与222.222.222.22视为同一行   

期望:
如果需要按我的需求排列这里需要如何操作?如果sed无法实现那么是否有其他可行性?希望大神能够指点一二或者给个思路。万分感谢,跪求~~~

idwen 发表于 2017-12-21 09:49:10

sed -i '1a111.111.111.111 222.222.222.222 333.333.333.333' ip.txt

idwen 发表于 2017-12-21 09:49:44

sed -i '3a444.444.444.444 555.555.555.555 666.666.666.666' ip.txt

jushjay 发表于 2017-12-23 12:48:37

idwen 发表于 2017-12-21 09:49
sed -i '1a111.111.111.111 222.222.222.222 333.333.333.333' ip.txt

非常感谢
页: [1]
查看完整版本: 关于sed插入用法求解,跪求~