命令介绍

sed 主要是用来将数据进行选取、替换、删除、新増的命令。我们看看命令的语法

选项:
-n:一般 sed 命令会把所有数据都输出到屏幕上。如果加入此选项,则只会把经过 sed 命令处理的行输出到屏幕上;
-e: 允许对输入数据应用多条 sed 命令编辑;
-f 脚本文件名:从 sed 脚本中读入 sed 操作。和 awk 命令的 -f 选项非常类似;
-r:在 sed 中支持扩展正则表达式;
-i:用 sed 的修改结果直接修改读取数据的文件,而不是由屏幕输出动作;
a \:追加,在当前行后添加一行或多行。当添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结;
c \:行替换,用c后面的字符串替换原数据行。当替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结;
i \:插入,在当前行前插入一行或多行。当插入多行时,除最后一行外,每行末尾需要用“\”代表数据未完结;
d:删除,删除指定的行;
P:打印,输出指定的行;
s:字符串替换,用一个字符串替换另一个字符串。格式为“行范围s/旧字串/新字串/g”(和Vim中的替换格式类似);

基本操作

sed -n '2p' student.txt #输出第2行数据
sed '2,4d' student.txt #删除从第二行到第四行的数据
sed -i '2,4d' student.txt #直接删除文件从第二行到第四行的数据
sed '2a hello' student.txt #在第二行后加入hello
sed '2i hello \nworld' student.txt #在第二行前插入两行数据

字符串替换

格式:sed's/旧字符串/新字符串/g' 文件名

sed '3s/74/99/g' student.txt #在第三行中,把74换成99
sed '4s/^/#/g' student.txt   #在第4行,行开头位置加上#字符

  

删除操作

sed -i '/str$/d' file
1、sed -i:表示直接对文本操作
2、sed -i '/字符串/d' file: d,表示删除,整条命令表示删除文件中于字符串匹配上的行
3、^ 表示行首,$表示行尾,用这个两个字符配合字符串,可以强制匹配某行内容

  

 

 posted on 2023-03-24 10:49  boye169  阅读(100)  评论(0)    收藏  举报