sed -i 命令常用方法总结

sed用法

Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...

-i[SUFFIX]
edit files in place (makes backup if SUFFIX supplied)

1,删除指定行:

sed -i 'Nd' filename 【N 为行数】

特别的,删除最后一行为:
sed -i '$d' filename 【$ 代表的是最后一行】

【提示】:
cat -n filename //可以从1开始输出显示行号
grep -n "指定行内容" filename //显示指定行行号

2,插入到某行

①知道该行行号
sed -i 'Ni 要添加内容' filename //第N行插入要添加的内容,原来该行的内容后移

②知道该行内容:
插入到某行上面
sed -i '/定位字符串/i 插入字符串' filename

插入到某行下面
sed -i '/定位字符串/a 插入字符串' filename

补充,文末增加一行可使用如下语句:
echo "\n插入字符串" >> filename

3,替换某字符串

①知道该行行号
sed -i 'Nc 替换内容' filename //替换第N行内容

②知道该行内容
sed -i 's/原字符串/替换字符串/' filename
sed -i 's/原字符串/替换字符串/g' filename 

说明:s///: 从每一行的行首开始,匹配到第一个符合的字段,就会跳到下一行(同一行中可能有多个匹配字段)s///g:表示全局替换,匹配每一行从行首到行尾的所有字符
 

4,替换字符串中部分内容,其实是3的升华用法

①知道该行行号
sed -i 'Nc 替换内容' filename //替换第N行内容

②知道该行内容
sed -i 's/原字符串/替换字符串/' filename
sed -i 's/原字符串/替换字符串/g' filename 

说明:s///: 从每一行的行首开始,匹配到第一个符合的字段,就会跳到下一行(同一行中可能有多个匹配字段)s///g:表示全局替换,匹配每一行从行首到行尾的所有字符

5,指定行添加删除注释

添加注释
加【#】:
sed -i 's/^指定行字符串/#&/g' filename
加【//】:
sed -i 's/^指定行字符串/\/\/&/g' filename (//由于有特殊含义,前面加\去掉特殊含义)

举例:
 > on property:sys.boot_completed=1
 >     start gps_upgrade
 > root:/vendor/etc/init/hw # sed -i 's/^.*start gps.*/#&/' init.tmp.rc (字符串不一定要写完整行,能唯一标识这一行即可。符合条件的字符串会全部都被添加上注释)
 > root:/vendor/etc/init/hw # 
 > root:/vendor/etc/init/hw # cat init.tmp.rc
 > on property:sys.boot_completed=1
 > #    start gps_upgrade 

删除注释
sed -i 's/^#\(指定行字符串\)/\1/g' filename

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

liang_cr

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值