shell脚本--sed的用法

sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。
sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。详细用法参考:shell脚本--sed的用法
sed '55d' test   # 将test文件的第55行删除后的文件内容打印在控制台上,文件本身没有被修改
sed -i '55d' test # 将test文件的第55行删除,文件本身被修改了
使用 -i 参数可能会遇到一个 "sed: 1: "xxx": invalid command code ."的问题,参考解释和解决方案:
i 本来的意思就原地替换的意思, 为啥不能替换呢? 一般情况 原地替换是比较危险的行为, 为了规避这样的行为, 需要你提供一个 备份的扩展名, 才能进行替换. 如果你给了空的扩展,就不会备份源文件. 但这不是推荐的方式. 因为 你面临这损坏或者部分损坏的危险 有可能恰巧是当磁盘空间用完的时候.
来加上扩展名 来试验一下
sed  -i ".bak"  '5d' test
此时 就会发现 一个备份文件
├── test
├── test.bak
如果不想备份的话, 可以不提供扩展名称. 加上一个空串即可.
sed  -i ""  '5d' test
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值