sed -e的用法,注释掉整行

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

关闭linux的swap分区并永久关闭

执行完后的结果是

在swap这行的首部,注释掉

那么,研究下sed -e 后面跟着的这参数含义

引号里面是sed的替换命令,常见的是 s/正则表达搜索/替换为/

将“替换为”字串替换“正则表达搜索”到的字符串。这里分隔符改为了竖线  |

sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

正则搜索项:

.* -> ../../\(.*\)$

.*——任意字符
-> ——原样匹配,->并且前后有一个空格

../——两个任意字符,加上一个/字符

../——同上

\(.*\)——匹配任意字符,并且放在了捕获括号中

$——字符串结束位置

替换为:\1——引用前面正则表达式中第一个捕获括号里面的内容

整个意思是找到能匹配正则的内容,并用后面的一部分替换整个匹配,

实例演示

1.注释掉以xxxx开头的某行

#ansible dmzm -m shell -a "sed -i '/- --port=0/s/^/###/g' /etc/kubernetes/manifests/*.yaml"
注释掉k8s中, - --port=0所在的行

#ansible dmzm -m shell -a "less /etc/kubernetes/manifests/*.yaml |grep port=0"
passnode1 | CHANGED | rc=0 >>
    - --insecure-port=0
###    - --port=0
###    - --port=0
passnode2 | CHANGED | rc=0 >>
    - --insecure-port=0
###    - --port=0
###    - --port=0
passnode3 | CHANGED | rc=0 >>
    - --insecure-port=0
###    - --port=0
###    - --port=0

#more /etc/kubernetes/manifests/kube-controller-manager.yaml
...
    - --cluster-name=kubernetes
    - --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt
    - --cluster-signing-key-file=/etc/kubernetes/pki/ca.key
    - --controllers=*,bootstrapsigner,tokencleaner
    - --kubeconfig=/etc/kubernetes/controller-manager.conf
    - --leader-elect=true
    - --node-cidr-mask-size=24
###    - --port=0
    - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt
    - --root-ca-file=/etc/kubernetes/pki/ca.crt
    - --service-account-private-key-file=/etc/kubernetes/pki/sa.key
    - --service-cluster-ip-range=192.168.240.0/22
    - --use-service-account-credentials=true
...

其他几种方式注释某行,源文件的内容为

1.sed -i '/Type/s/^/#/g' sshd.service

2.sed -i 's/^Kill/#&/' sshd.service

3.sed -i 's/Gues/#&/' sshd.service

#cat sshd.service
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/sshd
Description=SYSV: OpenSSH server daemon

[Service]
#Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/sshd.pid
ExecStart=/etc/rc.d/init.d/sshd start
ExecStop=/etc/rc.d/init.d/sshd stop
ExecReload=/etc/rc.d/init.d/sshd reload


# sed -i '/Type/s/^/#/g' sshd.service
# cat sshd.service
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/sshd
Description=SYSV: OpenSSH server daemon

[Service]
#Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/sshd.pid
ExecStart=/etc/rc.d/init.d/sshd start
ExecStop=/etc/rc.d/init.d/sshd stop
ExecReload=/etc/rc.d/init.d/sshd reload


#sed -i 's/^Kill/#&/' sshd.service
# cat sshd.service
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/sshd
Description=SYSV: OpenSSH server daemon

[Service]
#Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
#KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/sshd.pid
ExecStart=/etc/rc.d/init.d/sshd start
ExecStop=/etc/rc.d/init.d/sshd stop
ExecReload=/etc/rc.d/init.d/sshd reload


#sed -i 's/Gues/#&/' sshd.service
# cat sshd.service                
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/sshd
Description=SYSV: OpenSSH server daemon

[Service]
#Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
#KillMode=process
#GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/sshd.pid
ExecStart=/etc/rc.d/init.d/sshd start
ExecStop=/etc/rc.d/init.d/sshd stop
ExecReload=/etc/rc.d/init.d/sshd reload

取消某行的注释

1.sed -i 's/^#\(Type\)/\1/' sshd.service

#sed -i 's/^#\(Type\)/\1/' sshd.service
# cat sshd.service                      
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/sshd
Description=SYSV: OpenSSH server daemon

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
#KillMode=process
#GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/sshd.pid
ExecStart=/etc/rc.d/init.d/sshd start
ExecStop=/etc/rc.d/init.d/sshd stop

  • 0
    点赞
  • 5
    收藏 更改收藏夹
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楠奕

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值