Linux三剑客之sed--常用命令和用法

Linux三剑客之sed

1、sed命令作用

sed命令主要是对是数据进行选取、替换、删除和新增的操作,是编写shell脚本最常用的命令之一。

2、sed常用语法

sed [选项] ‘[动作]’ 操作的文件
-n:一般sed命令会把所有的数据都输入到屏幕上,加入此选项,只会把经过处理的行输出到屏幕上。
不加-n,会显示文件的所有内容和具体要显示的某一行
Linux三剑客之sed--常用命令和用法
添加-n,可以只显示指定的行
Linux三剑客之sed--常用命令和用法
-e:可以同时执行多条sed操作,如果只执行一条sed操作也可以加上-e选项,只是没有任何意义;执行多条sed操作的时候注意用‘;’号隔开。
将文件中的24和25都替换成99
Linux三剑客之sed--常用命令和用法

-f 脚本文件名:从sed脚本中读入sed操作。
执行sed脚本
Linux三剑客之sed--常用命令和用法

-r:在sed中支持扩展正则表达式。
用正则表达式将0-3的数字全部替换成9
Linux三剑客之sed--常用命令和用法

-i:用sed修改的结果直接修改sed读取的文件,而不是由屏幕输出
在第5行后面追加一行数据,-i会将操作保存到文件而不是输出到屏幕
Linux三剑客之sed--常用命令和用法

a \:追加,在当前行后面添加一行或者多行,注意:当添加多行内容时,除最后一行外,每一行的末尾都要添加“\”代表数据未结束。
在文件的第2行后面追加两行数据,注意:此时文件本身并没有真的修改,修改文件需要用-i选项,
Linux三剑客之sed--常用命令和用法
i \:插入,在当前行前插入一行或者多行内容,注意:当插入多行时,除最后一行外,每一行的末尾都要添加“\”代表数据未结束。
在第2行前面插入两行数据,注意和追加做区分
Linux三剑客之sed--常用命令和用法

c \:行替换,用c后面的字符串替换原数据行,注意:替换多行时,除最后一行外,每一行的结尾都要添加“\”代表数据没有结束。
将第2行数据用“nobody”替换掉,注意c是整个内容的替换
Linux三剑客之sed--常用命令和用法

d:删除,删除指定的行。
删除2-3行,但是此时文件本身并没有修改,修改文件需要用-i选项
Linux三剑客之sed--常用命令和用法
p:打印,将指定的行输出到屏幕上。
直接使用p选项屏幕上会出现两遍文件内容
Linux三剑客之sed--常用命令和用法

s:字符替换,用一个字符串替换另外一个字符串,格式为:“行范围s/旧字符串/新字符串/g”
将第5行的年龄由25替换成99
Linux三剑客之sed--常用命令和用法