shell中sed命令常用用法总结

目录

1、sed命令匹配文本内容进行替换

2、添加

2.1 向匹配到的内容的上一行或者下一行添加内容

2.2 向包含/的内容的上一行或者下一行添加内容

2.3 在test.txt  5行到末行最前面加’aaa:’

2.4 在test.txt每一行行首增加#号

2.5 在test.txt 文件中不以#开头的行的行首增加#号

4、在sed命令中使用变量

5、打印

5.1 打印所有行

5.2 打印test.txt的3到10行;

5.3   打印test.txt 中包含’root’的行

6、删除

6.1 删除test.txt 的3行以及以后所有行

6.2  删除test.txt中包含’bash’的行

6.3 删除test.txt中5到10行中所有的数字

6.4 删除test.txt 中所有特殊字符(除了数字以及大小写字母)

6.5 删除test.txt 文件中所有以空白开头的行行首的空白字符

6.6 删除test.txt 文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符



1、sed命令匹配文本内容进行替换

#-i 可以直接在原始文本中匹配替换,s/匹配内容/需要替换的内容/g ,g是以一行为全局,有g说明每行中匹配到的都需要替换,没有g说明,只需要替换每行中的第一个匹配到的。
sed -i 's/pool 2.rhel.pool.ntp.org iburst/#pool 2.rhel.pool.ntp.org iburst/' ./chrony.conf

修改前:

修改后:

 

=========================================================================

2、添加

2.1 向匹配到的内容的上一行或者下一行添加内容

# -i 会对原始文本进行修改。向word的上一行添加xiaoxiao
sed -i '/word/i xiaoxiao' 1.txt

#向word的下一行添加heihei
sed -i '/word/a heihei' 1.txt


2.2 向包含/的内容的上一行或者下一行添加内容

#如果匹配的内容是包括/的需要用\。a是向后一行添加,i是向前一行添加。
sed -i '/#allow 192.168.0.0\/16/a heihei' 1.txt

如果需要替换的内容包含/,我们除了用 \ 进行转义,我们还可以把分隔符进行替换。我们常用的命令是 : sed -i  ‘s///g’  xxxx   就可以把 / 这分隔符替换成其他的,比如说 # 或者 + 等

 

2.3 在test.txt  5行到末行最前面加’aaa:’

 


2.4 在test.txt每一行行首增加#号

2.5 在test.txt 文件中不以#开头的行的行首增加#号

=========================================================================

4、在sed命令中使用变量

#如果需要在sed命令中使用变量,那么就需要用引号包裹变量。如果变量含有特殊字符,就需要转义字符来处理特殊字符。
read -p "请输入一个网段:" allow_net
sed -i '/heihei/a '$allow_net'' 1.txt

=========================================================================

5、打印

5.1 打印所有行

sed -n 是 sed 命令的一个选项,其中 -n 表示 "quiet" 或 "silent",它告诉 sed 不要自动打印模式空间的内容。通常,sed 在处理完每一行后都会自动打印出结果,但使用 -n 选项后,只有通过特定命令或指令显式要求打印时,才会输出结果。这在需要精确控制输出的情况下非常有用。


5.2 打印test.txt的3到10行;


5.3   打印test.txt 中包含’root’的行

=========================================================================

6、删除

6.1 删除test.txt 的3行以及以后所有行


6.2  删除test.txt中包含’bash’的行


6.3 删除test.txt中5到10行中所有的数字


6.4 删除test.txt 中所有特殊字符(除了数字以及大小写字母)


6.5 删除test.txt 文件中所有以空白开头的行行首的空白字符


6.6 删除test.txt 文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值