• shell脚本之sed命令


    sed 在 Shell 脚本中非常常用,可以用于文本替换、插入、删除等操作。
    以下是 sed 命令的基本语法:

    sed [选项] '命令' [文件...]
    
    • 1

    其中,选项是可选的,可以用来指定一些额外的参数,如输入文件的分隔符等;命令是用来定义编辑操作的命令,可以是查找、替换、删除等;文件是要进行编辑的文件列表,可以指定多个文件,也可以使用管道从其他命令获取输入。

    sed 命令的一些常用选项

    -n:静默模式,不输出模式空间中的内容。
    -e:指定要执行的多个命令。
    -f:指定包含要执行的命令的文件。
    -i:直接修改文件内容,而不是输出到标准输出。
    -r:使用扩展正则表达式。
    -s:将多个文件视为一个连续的文件流处理。
    -u:使用未缓冲的 I/O,适用于大文件处理。

    sed 命令的一些常用命令

    s/pattern/replacement/:替换操作,将模式空间中匹配到的第一个模式替换为指定的替换字符串。
    s/pattern/replacement/g:全局替换操作,将模式空间中匹配到的所有模式替换为指定的替换字符串。
    s/pattern/replacement/p:打印操作,将模式空间中匹配到的模式替换为指定的替换字符串,并输出到标准输出。
    s/pattern/replacement/w filename:写入操作,将模式空间中匹配到的模式替换为指定的替换字符串,并将结果写入指定的文件。
    d:删除操作,删除模式空间中的行。
    p:打印操作,输出模式空间中的内容。
    n:下一行操作,读取并处理下一行。
    N:追加下一行操作,将下一行追加到模式空间中。
    h:复制模式空间内容到保持空间。
    H:追加模式空间内容到保持空间。
    g:将保持空间的内容复制到模式空间。
    G:将保持空间的内容追加到模式空间。
    x:交换模式空间和保持空间的内容。
    b label:无条件跳转操作,跳转到指定的标签位置。
    t label:测试操作,如果模式空间中包含匹配的模式,则跳转到指定的标签位置。
    q:退出操作,退出 sed 处理。

    具体例子

    1)替换文本
    使用sed命令可以将文本中的某个字符串替换为另一个字符串。下面是一个简单的例子:

    sed 's/search_string/replacement_string/g' file.txt
    
    • 1

    上述命令将在文件file.txt中查找所有的search_string,并将其替换为replacement_string。其中,s表示替换操作,g表示全局替换(即一行中的所有匹配项都被替换)。

    删除文本
    使用sed命令可以删除文本中的特定行或特定字符串。下面是一个例子:

    sed '/search_string/d' file.txt
    
    • 1

    上述命令将在文件file.txt中查找所有的包含search_string的行,并将其删除。其中,d表示删除操作。

    插入文本
    使用sed命令可以在文本的特定位置插入新的文本。下面是一个例子:

    sed '/search_string/a\new_text' file.txt
    
    • 1

    上述命令将在文件file.txt中查找所有的包含search_string的行,并在其后面插入new_text。其中,a表示插入操作,\new_text表示要插入的新文本。

    移动文本
    使用sed命令可以将文本中的特定行或特定字符串移动到其他位置。下面是一个例子:

    sed '/search_string/{x;s/\n/replacement_string/;}' file.txt
    
    • 1

    上述命令将在文件file.txt中查找所有的包含search_string的行,并将其移动到文件的末尾,并将其中的search_string替换为replacement_string。其中,x表示交换操作,s表示替换操作。

  • 相关阅读:
    【FPGA】FPGA实现SPI协议读写FLASH(一)----- M25P16操作概述
    Debug Information
    一些拍案叫绝的运维小技巧
    怎么办理工程监理资质,工程监理资质申请办理条件
    Linux防火的常用命令
    C++STL的迭代器(iterator)
    Spring SpEL表达式语言
    K8s复习笔记6--使用PVC存储构建Zookeeper集群搭建
    嵌入式面试常见问题(三)
    阿里云C++二面面经
  • 原文地址:https://blog.csdn.net/techenliu/article/details/132889379