(30)字符截取命令sed

时间:2022-07-24
本文章向大家介绍(30)字符截取命令sed,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

sed命令

sed是一种几乎包括在所有UNIX 平台(包括 Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。

PS.相对于vim,vim只能修改文件,不能直接修改命令结果里的内容,如果想要修改命令的输出,需要先把命令结果保存在文件当中,再用vim修改这个文件;但是sed不光可以修改文件,还可以通过管道符接受数据进行操作,换句话说我不需要先把命令的结果先写到文件当中,而是sed直接通过管道符接收这个命令的结果。

格式:

[lhh98330@localhost ~]$ sed [选项] ‘[动作]’ 文件名

选项:

①-n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。

②-e:允许对输入数据应用多条sed命令编辑

③-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出

动作:

①a:追加,当前行后添加一行或多行。添加多行时,除最后一行外,每行末尾需要用“”代表数据未完结。

②c:行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“”代表数据未完结。

③i:插入,在当期行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“”代表数据未完结。

④d:删除,删除指定的行。

⑤p:打印,输出指定的行。

⑥s:字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”(和vim中的替换格式类似)。

接下来我们以下面的文档进行演示:

例1.查看文件的第二行

"-n"与不加"-n"的区别:加"-n"就只输出你想要的内容

例2.删除第二行到第四行的数据,但不修改文件本身

PS.只要不加"-i"选项,就不会修改文件本身内容,只临时改变屏幕输出的内容。

例3."a"追加,当前行后添加一行或多行。添加多行时,除最后一行外,每行末尾需要用“”代表数据未完结。

本例为在第二行后追加hello在第二行后追加hello、666

例4."i"插入,在当期行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“”代表数据未完结。

本例为在第二行前插入"test666"(用法同a)

例5.行替换

本例为将第二行的内容替换成"No such person"

例6.字符串替换

本例为将第3行的74替换成99

例7.-e: 允许对输入数据应用多条sed命令编辑

本例为同时把“A”和“B”替换为空

END