shell脚本学习笔记13-sed
一、sed介绍
sed是linux中提供的一个外部命令,它是一个行编辑器,非交互式的对文件内容进行增删改查的操作,使用者只能在命令中输入编辑命令,指定文件名,然后在屏幕上查看输出。它和文本编辑器有本质区别。
文本编辑器编辑对象是文件,行编辑器编辑对象是行。

二、sed语法
sed [options] '{command}[flags]' [filename]

2.1、sed内部命令
用例子说明:

①
1)a 在匹配后面添加

2)2a 在第二行后面添加

3)2,4a 在第二到第四行后面添加

4)找到包含"3 the"的行,在其后面添加
匹配模式 /要匹配的字符串/

② i 在行前面添加的操作与a在后面添加的操作类似
③s 将一行中匹配的内容替换为新的数据
1)将data中第一次出现的全部行的dog转换为cat

2)将第二行的dog转换为cat

3)将2到4行的dog转换为cat

4)将包含3 the的行的dog转换为cat

④c 将一行中匹配的内容更换为新数据
1)将文件中所有行更换为新数据

2)更改第2行

3)将2,3,4行更改为新数据

4)匹配更改

⑤y 字符串转换
将abc更改为ABC,abc与ABC一一对应,前后字符串长度要相同

⑥d 删除指定数据
1)删除第3行

2)删除2到4行

3)字符匹配删除

2.2、命令选项说明
①-e 在命令行中使用多个选项

②-f 从文件中读取命令


③-i 修改文件内容,不可逆

④-i.bak 修改文件内容,将原文件备份为xxx.bak,后缀名可以自己指定

2.3、标志
标志是对sed中内部命令做补充说明
①数字标志,此标志是一个非零正数,默认情况下,执行替换的时候,如果一行中有多个符合的字符串,如果没有标志位定义,那么只会替换第一个字符串,其他的就被忽略掉了,为了能精确替换,可以使用数字位做定义。

②g标志,将一行中所有符合的字符全部替换

③p标志,打印文本内容
④w filename,将修改的内容存入filename文件中


浙公网安备 33010602011771号