Shell 按行修改文件内容 sed

1 按行修改是什么

文件的修改主要包括3种模式:

1)按行修改

2)按搜索内容修改

3)按搜索内容修改(高级版)

3种模式的 修改命令 又分别有自己的语法。


按行修改是什么

按行修改可指定行数进行增删改,例:第2行之后添加文字1,第3行的内容替换成成文字2,第4行的内容删除。


2 修改命令的语法

行号 操作 内容

修改命令是sed命令语法的一部分,不是独立执行的;

实际,行号/操作/内容之间没有空格,这里为表达需要加的;

删除操作时,内容 不需要指定;

修改命令字符串通常单引号。


常用行号

常用行号 说明
第几行
$ 最后一行
值1,值2 逗号隔开。表示值1与值2之间的所有行,通常用于删除多行。

常用操作

操作表示在行上执行增删改哪种操作。

常用操作 说明
i 前一行添加,insert
a 后一行添加,append
c 修改,change
d 删除,delete

内容

内容之前可使用反斜杠\,方便代码阅读,也可以不用;

内容包含特殊字符,特殊字符需用反斜杠\进行转义。


3 示例

例1:文件的第2行之后添加内容bbb。

sed '2abbb' data1.txt

例2:文件的第2行之后添加内容bbb,真正的修改文件。

sed -i '2abbb' data1.txt

例3:文件的第3行内容替换为ccc。

sed '3c\ccc' data1.txt

修改命令 说明

第1个字符3表示第3行;

第2个字符c表示修改操作(change);

第3个字符\表示操作与内容的分隔符,可省略;

后续内容ccc表示修改后内容。

img


例4:删除第4行。

sed '4d' data1.txt

修改命令 说明

第1个字符4表示第4行;

第2个字符d表示删除操作(delete),删除整行。


例5:删除第4行以及之后的所有行

sed '4,$d' data1.txt

img