【sed】关于sed的几个骚操作

一、sed命令,在匹配行前面,后面添加一行

 

单引号内的选项:a代表after,i代表in front

sed 后面的i代表是直接在文本内进行操作,就是直接改变文本内容,不加这个i,就是改变后在屏幕输出,文本并没有实际改变!

 

参考模板:

#  sed -i  '/匹配行/a\添加内容'  文件名

#  sed -i  '/匹配行/a  \添加内容'  文件名

#  sed -i  '/匹配行/a  \添加内容\'  文件名

具体举例:

# sed -i '/name/a\zhangsan' filename

# sed -i '/name/a \zhangsan' filename

# sed -i '/name/a \zhangsan\' filename

 

如果想在匹配行前面进行插入,那么把上面的 a 变成 i 就可以了!

#  sed -i  '/匹配行/i\添加内容'   文件名

#  sed -i  '/匹配行/i  \添加内容'  文件名

#  sed -i  '/匹配行/i  \添加内容\'  文件名

 

二、Linux shell程序中的  sed 的   s/$//   s/ *//g   /^$/d 是什么意思?

 

s/$// 在每一行后面追加空. s为搜索 如s/a/b/  搜索a 将替换为b ,并只替换一次.

s/ *//g 将空格删除.  g代表搜索到的全部替换 。“空格星”( " *") 代表多个空格

/^$/d   删除空行.

 

 

三、如何用sed在特定行行尾追加内容?

 

在文件的以XXX开头的行的行尾追加内容为YYY,$代表行尾,分割符号可以灵活选择

# sed -i '/^XXX/ s/$/YYY/'       filename

# sed  -i  '/^XXX/ s:$:YYY:'    filename

# sed  -i  '/^XXX/ s#$#YYY#'    filename

在文件的以XXX开头的行的行首追加内容为YYY,^代表行尾,分割符号可以灵活选择

# sed -i '/^XXX/ s/^/YYY/'       filename

# sed  -i  '/^XXX/ s:^:YYY:'    filename

# sed  -i  '/^XXX/ s#^#YYY#'    filename

 

下面方式同样可以实现在在特定行行尾追加内容

 

#   sed -i  '/XXX/s/$/& YYY/'    filename

 

 

#   sed -i  '/XXX/s/^/& YYY/'    filename 

 


可以看出 &符合和追加的内容之间的空格决定了,追加的空格。

 

 

四、怎样在sed中做变量引用?

sed中支持变量的几种处理方法

1.  eval sed ’s/$a/$b/’ filename

2. sed   "s/$a/$b/"    filename

3. sed   ’s/’$a’/’$b’/’   filename

4. sed   s/$a/$b/       filename

 

 

五、综合应用举例

 

#  sed \

    -e '/^nexus-args/ s:$:,${jetty.etc}/jetty-https.xml:' \

    -e '/^application-port/a \application-port-ssl=8443\' \

    -i /etc/nexus-default.properties

 

 

-e 表示多点编辑,用于在一条命令中对同以文件做多次操作

-i   在这个位置表示直接修改文件,不是插入行的意思

 

 

 

 

#  sed \

    -r  '/<Set name="(KeyStore|KeyManager|TrustStore)Password">/ s:>.*$:>nexus@123</Set>:'  \

    -i  /etc/jetty/jetty-https.xml

 

#  cat   /etc/jetty/jetty-https.xml

 

-

-r 表示启用sed的扩展正则

# man sed

 

#  cat   /etc/jetty/jetty-https.xml

 

 

六、参考

 

Linux sed命令

https://www.runoob.com/linux/linux-comm-sed.html

 

sed操作:指定行增加删除内容

https://blog.csdn.net/m0_37886429/article/details/79043158

 

sed中支持变量的处理方法

https://www.cnblogs.com/tiantianhappy/p/9139751.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值