Sed工具常用用法总结

Sed工具常用用法总结

Sed是一种好用的流编辑工具,在文本里进行替换、删除、编辑操作十分方便。学完了Sed的一些常用操作,下面总结一下,方便日后翻阅。

sed [选项] {指令} 文件

选项:
      -n 加入这个可以使sed命令执行后屏蔽改后内容的输出
      -i  将执行完的指令写入文件,不然执行完文件内容不做改变
      -e 同时执行多个指令,指令间用;分隔
      -p 打印,和-n配合可以输出指定行
动作:
      -a 在指定位置后面追加一行
      -i 在指定位置前面追加一行
      -c 替换指定位置的行
      -d 删除指定行
      -s 替换字符
      -y 按字符替换
下面举几个例子
  1. 在test.sh文件第三行后追加行 abcde:sed ‘3a abcde’ test.sh

  2. 在test.sh文件第三行前追加行 abcde:sed '3i abcde' test.sh

  3. 在test.sh文件中把所有的a字符换成b字符sed 's/a/b/g' test.sh
    此时g表示全局替换,如果是用具体的数字,比如2,则替换第二个

  4. 在test.sh文件中把1到5行删除,注意这里,是表示一个区间:sed '1,5/d' test.sh

  5. 上面讲到的行号都是给出来的,然而有时候当文本行数太多,并不能确定行号,此时我们可以用正则表达式来定位到目标行。如找到tesh.sh文件里包含abc的行,并在前面添加一行def

    sed '/abc/i def' test.sh

    此时有个特例,如果正则表达式//之间没有任何字符,则表示匹配最近一次正则表达式的内容,如找到包含abc这行,把行里第二个abc换成cba,如 sed '/abc/s//cba/2'

  6. 找到以abc结尾的行,并在其后面添加一行def sed '/abc$/a def' test.sh

  7. 从第一行开始,把奇数行全部删除sed '1~2/d' test.sh,这里1~2的意思是说,从第一行开始,每两行进行一次操作

  8. 替换命令:把test.sh文件里a1、a2等an变成(an) sed '/a[0-9]/s//\(&\)/g' 注意这里()都是转义字符,要用\(和\)表示

  9. 这么一条一条写固然方便,但是如果是比较长的脚本,则可以把批量指令写成脚本,再统一对该文件执行脚本。比如把指令写在a.sh文件,对abc.txt文件执行操作。可以用 sed -f a.sh abc.txt 对文件执行操作 。此时脚本文件a.sh里不需要写sed。如

    [root@localhost ~]#cat a.sh
    /.*/{
    /^$/d   #删除全部空白行
    s/a/b/g  #把a全部换成b
    }   

    10.依次替换命令:把test.sh文件里abc分别换成ABC sed 'y/abc/ABC/' test.sh


这里列举的只是很基础的一部分,日后有再深入学习再做补充,有任何错误烦请指出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值