sed全称是:Stream EDitor(流编辑器)。
当处理数据时,Sed 从输入源一次读入一行,并将它保存到所谓的模式空间pattern space中。
sed替换的基本语法为:
sed 's/原字符串/替换字符串/'
sed "s/原字符串包含/'替换字符串包含'/" #要处理的字符包含单引号,就必须用双引号
sed 's/原字符串/替换字符串/g'
# 在末尾加g可以替换每一个匹配的关键字(全局替换),否则只替换每行的第一个
----s
后面跟的是分隔符,一般为斜线"/"
,也可为"?"
等。
🐷分隔符"/"
一般用于对文本内容进行操作时;对行进行操作时,不加引号''
也可
sed替换的举例
sed '2s/原字符串/替换字符串/g' #替换第2行中每一个匹配的关键字(全局替换)
sed '$s/原字符串/替换字符串/g' #替换最后一行中每一个匹配的关键字(全局替换)
sed '2,5s/原字符串/替换字符串/g' #替换2到5行中每一个匹配的关键字(全局替换)
sed '2,$s/原字符串/替换字符串/g' #替换2到最后一行中每一个匹配的关键字(全局替换)
🐖 参数s
表示取代,替换。
🐖 未标注第几行,就是对每一行都执行此操作。
🐖 $
符号如果在/$/
中表示行尾,但是在/$/
外却表示末行(最后一行)
sed 's/^/添加的头部&/g' #在所有行首添加
sed 's/$/添加的尾部&/g' #在所有行末添加
🐖 上箭头^
表示行首
🐖参数 &
表示添加
使用参数d
进行删除
♥linux如何删除文件某几行https://www.yisu.com/zixun/724766.html
删除文件的第2行和第4行
sed -i '2d' filename # 删除第2行
sed -i '3d' filename # 删除第3行(现在的第3行,之前的第4行)
🐖 注意行数要按删除后的计算
删除第2行到第5行
sed '2,5d' filename
或者
sed '2d;3d;4d;5d' filename
删除包含特定字符,,如system的行
sed '/system/d' 文件名
删除特定字符开头的行
sed '/^特定字符/d' 文件名
删除以 R 或者 F 开头的行
sed '/^[RF]/d' filename
删除以 x 或 m 结尾的行
sed '/[xm]$/d' filename
删除第 3到 6 行以外的其他行
sed '3,6!d' filename
删除有System 或 Linux 的行符号 (\|
代表逻辑或)
sed '/System\|Linux/d' filename
删除文件的空白行
sed '/^$/d' filename
删除最后一行
sed '$d' filename
删除包含字母字符的行
sed '/[A-Za-z]/d' filename
🐖[A-Z] 表示大写字母;[a-z] 表示小写字母。
删除包含数字的行
sed '/[0-9]/d' filename
同时执行多个替换规则
替换样式可以多个在同一条命令中执行,用分号”;”
分隔.例如:
sed 's/^/添加的头部&/g;s/$/&添加的尾部/g' # 同时执行两个替换规则
使用参数”i”直接在文件中替换
sed处理过的输出是直接输出到屏幕上的,要保存可以将输出重定向,或者使用参数”i”
直接在文件中替换:
sed -i 's/原字符串/替换字符串/g' filename //替换文件中的所有匹配项
查看某行内容
查看某一行
sed -n '26p' filename
查看第5行到10行
sed -n 5,10p' filename
查找文件中有/bin/bash字符串的行
sed -n '\%/bin/bash% p' filename
####特定字符串的行前插入新行
sed -i '/特定字符串/i 新行字符串' file
###特定字符串的行后插入新行
sed -i '/特定字符串/a 新行字符串' file
♥Linux的sed命令详解大全https://blog.csdn.net/jks212454/article/details/116066856