sed 命令给指定文件的某行添加特定字符

一、需求:需要给某个机器的某个文件的指定行添加一些 字符

二、处理过程:

1.某行字符较少的话可以使用替换的方法,如下:

$ sed -i.bak '10 s#netmask#aaaaaaaaaaaa#' file 

 表示对第10行 进行替换

2.某行字符太长的话,使用sed 命令可以实现指定行添加一些 字符,如下:

$ sed -i.bak '124 s/^.\{20\}/&or 10.10.10.10 /g'  file             # or 10.10.10.10 是一个整体

$ sed -i.bak ' /^line1/,/^line3/,s/^.\{20\}/&welcome to china /g' file

解释一下这个命令的参数:
a、-i.bak 表示直接对原文件进行编辑的同时做备份;
b、/^line1/,/^line3/表示以line1开头的行,到以line3开头的行之间的范围进行操作;
3、s###是替换一次。s###g 是符合条件的都替换(#是分隔符号,可以使用任意的特殊符号,如+  / @  等等,),^.\{20\}是从开头的第一个字符到第20个字符,&代表在后方添加,后面的welcome to china就是添加的字符;
4、file 表示要处理的文件名。

原文地址:https://www.cnblogs.com/lanbojini/p/13084262.html