美文网首页
Linux系列开坑记(三)-流处理器sed

Linux系列开坑记(三)-流处理器sed

作者: 彭涛聊Python | 来源:发表于2019-01-19 16:53 被阅读20次
    image

    今天我们聊一聊Linux 下sed 命令,sed是linux非常强大的命令,可以对数据进行替换,删除,新增等操作。

    sed是 stream editor 流处理器简写,使用sed的同学往往需要对正则表达式比较熟悉,因为这样能让sed效果发挥到最好地步,从而得心应手。

    下面我简单介绍常用的操作:

    替换操作

    最简单替换方式:

    echo "sitin" >> test.txt
    sed -i 's/sitin/pengtao/g/' test.txt
    其中-i 参数 in-place 对文件进行修改, s 表示替换,g表示整行替换,没有就是第一个
    test.txt 这里可以是一个或者多个通过正则匹配 *.txt 所有txt文件

    删除操作

    sed '2d' test.txt # 删除文件第二行

    sed '2,$d' test.txt # 删除文件第二行到最后一行

    追加操作

    sed '$a test1\ntest2' test.txt # 末尾追加test1,test2

    其他例子

    image

    [图片上传失败...(image-d364c8-1547886865929)]

    通过上面大家可以看到使用sed命令,用的正则表达式较多,所以在这里顺便提一下常用正则表达式的有下面几个:

    . 表示任何单个字符。* 表示某个字符出现了0次或多次^ 表示一行的开头$ 表示一行的结尾\s 字符串[ ] 字符集合,[abc] 这里面的表示匹配所有字符串。
    

    在执行sed操作的时候,一开始不建议加上-i参数,原因是加上会导致数据被替换,尤其是数据替换错误情况。建议是通过把要做变更的文件进行版本控制比如Git,这样改变也能看到diff的效果。

    这也是文本编辑的奥秘,其实我从一开始文章就建议大家用文本文件形式进行书写东西,包括论文,而不使用二进制文件,比如word。

    使用文本文件好处:

    1. 通过Git版本控制你能轻易看到文件变更。

    2. Linux命令能非常好的发挥各个命令定制化能力。

    上面介绍了sed常用的几个操作,更多操作大家可以参考官方文档,或者man sed,info sed 命令。

    Linux日常命令使用,同Docker容器化一样我会以一个系列进行分享,今天是第三篇,后面我将持续分享更多内容,从Linux日常命令使用到shell脚本编程,欢迎大家持续进行关注。

    image

    相关文章:

    Linux系列开坑记(二)-神的编辑器Vim

    Linux系列开坑记(一)-常用的3个命令

    Python web开发从入门到放弃

    聊聊Redis数据持久化备份

    Docker容器化部署实践Docker Compose

    【私货】MongoDB 副本集的运维部署

    image

    相关文章

      网友评论

          本文标题:Linux系列开坑记(三)-流处理器sed

          本文链接:https://www.haomeiwen.com/subject/wqjzdqtx.html