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文件中

 

posted @ 2021-06-27 12:37  さくらむすび  阅读(59)  评论(0)    收藏  举报