标签:sed
sed是一个流编辑器,针对行进行操作;主要用来将数据进行选取、替换、删除、新增。与vim的不同在于可以直接修改输出的结果,如:du输出的内容可以直接进行修改。
格式:
sed [选项] ‘[动作]‘ 文件名
[选项]
-n 一般的命令会把所有的数据输出到屏幕,如加了此选项后,会把经过sed命令处理的行结果输出到屏幕:
例如:sed ‘2p‘ 文件名 将输出所有内容,而加了sed -n ‘2p‘ 文件名之后就只有输出第二行。
-e 允许多条命令同时编辑。
-i 直接修改原文件数据,而不是只是显示到屏幕上。
[动作]
动作:
a \: 追加,在当前行后添加一行或多行。添加多行时,除最后 一行
外,每行末尾需要用“\”代表数据未完结。
c \: 行替换,用c后面的字符串替换原数据行,替换多行时,除最
后一行外,每行末尾需用“\”代表数据未完结。
i \: 插入,在当期行前插入一行或多行。插入多行时,除最后 一行
外,每行末尾需要用“\”代表数据未完结。
d: 删除,删除指定的行。
p: 打印,输出指定的行。
s: 字串替换,用一个字符串替换另外一个字符串。格式为“行范
围s/旧字串/新字串/g”(和vim中的替换格式类似)
==================================================================
[root@localhost ~]#sed ‘2,4d‘ 文件名 删除 -------注意是单引号
[root@localhost ~]#sed ‘2a hello‘ 文件名 在第二行后追加hello(注意:并未修改原文件)
[root@localhost ~]#sed ‘2i hello \
>world‘ 文件名 在第二行前插入hello(注意:并未修改原文件)
[root@localhost ~]# sed ‘2c No such person‘student.txt c的作用就是替换整行
字符串替换
[root@localhost ~]# sed ‘s/旧字串/新字串/g’ 文件名
[root@localhost ~]# sed ‘3s/74/99/g‘ student.txt
#在第三行中,把74换成99
[root@localhost ~]#sed -i ‘3s/74/99/g‘ student.txt
#sed操作的数据直接写入文件
[root@localhost ~]#sed -e ‘s/Liming//g;(分号)s/Gao//g‘ student.txt
#同时把“Liming”和“Gao”替换为空
本文出自 “白天求生存,晚上谋发展” 博客,请务必保留此出处http://perter.blog.51cto.com/1962646/1839933
标签:sed
原文地址:http://perter.blog.51cto.com/1962646/1839933