Linux运维常用sed命令使用

sed 是一种流式文本编辑器,常用于文本替换、文本过滤、行选择等操作。

常见的 sed 使用方法

1、替换文本中的字符串

使用 sed 可以在文本中替换指定的字符串。例如,将文本中所有的 old_text 替换为 new_text,可以执行以下命令:
sed 's/old_text/new_text/g' file.txt
其中,s 表示替换操作,g 表示替换所有匹配到的字符串。file.txt 是要进行替换的文本文件名。
在这里插入图片描述

2、删除指定行

使用 sed 可以删除文本文件中的指定行。

2.1 单行删除

例如,删除文件中第3行的内容,可以执行以下命令:
sed '3d' file.txt
其中,3d 表示删除第3行的内容。
在这里插入图片描述

2.2 多行删除

如果要删除多行内容,可以用逗号分隔行号,例如:
sed '3,5d' file.txt
表示删除第3行到第5行的内容。
在这里插入图片描述

3、按条件替换

使用 sed 可以按照指定的条件替换文本文件中的字符串。
例如,将文本中行首为 old_text 的字符串替换为 new_text,可以执行以下命令:
sed 's/^old_text/new_text/g' file.txt
其中,^ 表示行首的意思,即只替换行首为 old_text 的字符串。
在这里插入图片描述

4、显示指定行

使用 sed 可以显示文本文件中的指定行。例如,显示文件中的第3行,可以执行以下命令:
sed -n '3p' file.txt
其中,-n 表示关闭默认输出模式,3p 表示输出第3行的内容。
在这里插入图片描述

5、执行多个命令

使用 sed 可以执行多个命令,例如,替换文件中的多个字符串,并删除指定行,可以执行以下命令:
sed -e 's/old_text1/new_text1/g' -e 's/old_text2/new_text2/g' -e '5d' file.txt
其中,-e 表示执行多个命令,用逗号分隔多个命令即可。这个命令的作用是将文本文件中的 old_text1 替换成 new_text1,将 old_text2 替换成 new_text2,并且删除第五行,-e 参数表示后面跟着一个 sed 命令,可以多次使用 。
在这里插入图片描述

6、删除某个字符串所在的行

sed '/pattern/d' file.txt
其中,pattern 是要删除的字符串。
在这里插入图片描述

7、在某个字符串所在的行前/行后插入一行

sed '/pattern/i new_line' file.txt
其中,pattern 是要插入行的位置,new_line 是要插入的新行。

行后插入行:sed '/pattern/a new_line' file.txt
其中,pattern 是要插入行的位置,new_line 是要插入的新行。
在这里插入图片描述

8、替换某个字符串所在的行

sed '/pattern/c new_line' file.txt
其中,pattern 是要替换行的位置,new_line 是要替换成的新行。
在这里插入图片描述

9、修改源文件内容

sed命令中,如果要替换源文件的内容,需要使用-i选项。具体用法如下:
sed -i 's/old_text/new_text/g' file.txt
使用 -i 选项会直接修改源文件的内容,因此需要谨慎使用。如果不确定修改后的结果是否正确,可以先使用 -i 选项的备份功能,将源文件备份一份,再进行修改。备份的命令如下:
sed -i.bak 's/old_text/new_text/g' file.txt
其中,.bak 是备份文件的后缀名,可以根据需要修改。执行这个命令会将 file.txt 文件备份为 file.txt.bak,然后将修改后的内容保存到 file.txt 文件中。
在这里插入图片描述

10、总结

除了前面提到的替换、删除、插入等基本用法,sed 命令还有一些常用的参数,具体如下:

  • -n:只输出经过编辑的那一行(默认情况下,sed 命令会输出所有的行)。
  • -e:允许对输入数据应用多个编辑器命令,多个命令之间用分号分隔。
  • -f:指定 sed 命令编辑脚本文件。
  • -r:启用扩展的正则表达式语法。
  • -i:直接修改源文件的内容,替换操作会对源文件进行修改,需要谨慎使用。
  • -b:在修改文件之前,为文件创建一个备份文件。
  • -u:使用非缓冲输出,即立即输出而不是等到缓冲区填满之后再输出。
  • -p:打印模式空间的内容,通常与 -n 选项一起使用。
    这些参数可以组合使用,实现更加复杂的操作。例如,可以使用 -ne 参数组合,只输出经过编辑的那一行,并禁止默认输出所有的行。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值