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表示修改后内容。
例4:删除第4行。
sed '4d' data1.txt
修改命令 说明
第1个字符4表示第4行;
第2个字符d表示删除操作(delete),删除整行。
例5:删除第4行以及之后的所有行
sed '4,$d' data1.txt