sed 命令使用总结

作者: 学生陈希 | 来源:发表于2017-08-13 22:53 被阅读30次

    1. 简介

    sed是非交互式的编辑器。
    它不会修改文件,除非使用shell重定向来保存结果。
    默认情况下,所有的输出行都被打印到屏幕上。
    sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。
    具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。
    sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。
    处理完输入文件的最后一行后,sed便结束运行。
    sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
    

    2 常用命令

    命令 功能
    d 删除行
    p 打印行
    i 直接编辑源文件
    s 用一个字符串替换两一个字符串
    g 在行内进行全局替换

    3. 实践 -- 替换

    3.1 替换字符串

    sed -i 's/abc/def/g' text.txt
    

    表示在当前目录下的text.txt文件中,把所有的abc字符串替换为def

    3.2 替换带有多个"/"的字符串

    sed -i 's:/a/b/c:/d/e/f:g' text.txt
    

    表示在当前目录下的text.txt文件中,把所有的/a/b/c字符串替换为/d/e/f

    在替换的时候,不仅仅是"/" 可作为分隔符, 其他字符也可作为分隔符, 只需要前后的分隔符一致即可, 本例中使用“:” 作为分隔符。

    3.3 替换 project.pbxproj 文件中的字符串

    project.pbxproj 位于 xx.xcodeproj 文件中, 用上述命令来替换其中文件,无法起作用,其原因是因为OSX 需要显示的为它指定其扩展 。正确做法如下:

    sed -i '' 's:/a/b/c:/d/e/f:g' project.pbxproj
    

    参考资料链接

    相关文章

      网友评论

        本文标题:sed 命令使用总结

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