zoukankan      html  css  js  c++  java
  • sed的选项与命令简要

    第一部分:sed命令选项

    sed选项 说明
    -n, --quiet, --silent 静默模式,取消将模式空间中的内容自动打印出来。
    -e script, --expression=script 以选项指定的script来处理文本。
    -f script‐file, --file=script‐file 以选项指定的script‐file文件来处理文本,也就是可以将sed程序写到文件中,然后通过‐f选项指定sed程序。
    -i[SUFFIX], --in-place[=SUFFIX] 就地编辑文件,如果指定了‐i的值(suffix)sed将会备份一份原文件。
    -l N, --line-length=N 也就是说如果后面的command中如果有l(是英文L的小写),就可以通过这里的‐l选项来指定每一行的显示长度,默认是70个字符,如果超过,将会通过跳脱字符“”来换行。例如 sed ‐n ‐l 10 '1,2l' textfile 将第一和第二行按每行10个字符显示,包括转义字符。 注意:该选项必须要与后面的 –e 指定的指令l一起用。
    --posix 禁用所有的GNU扩展。
    -r, --regexp-extended 在脚本中使用扩展正则表达式。
    -s, --separate 将输入文件视为各个独立的文件而不是一个长的连续输入。
    --version 查看当前sed版本
    -u, --unbuffered 从输入文件装载最少的数据,并且刷新输出缓冲区,也就是说尽量少缓冲input和output 要随时更新。

    第二部分:sed命令

    sed命令 说明
    a 在当前符合条件的行后面插入文本行,新的文本行用反斜杠“”与a命令隔开。
    c 用新的文本去修改选定的行,新的文本行用反斜杠“”与c命令隔开。
    i 在当前符合条件的行的前面插入文本行,新的文本行用反斜杠“”与i命令隔开。
    d 删除模式空间中的全部行,继续进行下一行。
    D 在模式空间中删除掉第一行文本,开始从input中读取下一行,但是如果此时模式空间中还有文本行,将会再用这个数据行进行sed script一次。
    p 打印当前模式空间(Pattern space)中的全部内容。
    P 打印当前模式空间(Pattern space)中内容的第一行数据。
    q 马上退出sed命令,不再处理任何输入,除非没有加‐n(禁止自动输出)选项,否则sed还会将当前模式空间中的内容(当前处理行)输出。
    Q 马上退出sed命令,不再处理任何输入
    n 将当前行的下一行数据覆盖进当前模式空间(Pattern space)的内容中。
    N 将当前行的下一行数据追加进当前模式空间(Pattern space)的内容中。
    h 将模式空间(Pattern space)中的数据复制到保留空间(Hold space)中。
    H 将模式空间(Pattern space)中的数据追加到保留空间(Hold space)中。
    g 将保留空间(Hold space)的数据复制到模式空间(Pattern space)中。
    G 将保留空间(Hold space)的数据追加到模式空间(Pattern space)中。
    x 交换保留空间(Hold space)和模式空间(Pattern space)的内容。
    r 从指定的文件中读取内容,附加到选定行之后。
    R 从指定的文件中读取第一行,附加到选定行之后。
    将当前模式空间(Pattern space)的全部内容写入到指定文件中
    将当前模式空间(Pattern space)内容中的第一行写入到指定文件中。
    l 将当前行以可见的严格的形式列出来。
    = 输出当前处理行的行号。
    F 打印当前的输入文件的文件名。
    e 此命令后可以执行shell命令
    {command} 命令分组
    后面的命令对所有没有被匹配的行发生作用
    b label 将控制分支到标签,如果标签被忽略,将控制分支到脚本后面。
    t label 如果s指令发生替换操作,尽管已经读入输入的最后一行,或者已经是最后的t、T,都会转移到指定的标签后;如果忽略具体的标签,将会将控制转移到脚本末尾。
    T label 和t差不多,只是这里是s指令没有发生替换操作然后就转移控制到指定标签,如果s指令发生替换,就不转移控制。
    s/regexp/replacement/ 尝试对模式空间中的内容进行正则表达式“regexp”的匹配,如果匹配成功,将会用“replacement”来代替匹配的部分;“replacement”可以包含特殊字符“&”,“&”用来代替匹配“regexp”的模式空间的内容,而1、2、3……9表示“regexp”的子表达式的匹配内容。
    y/source/dest/ 用另一种字母体系将模式空间(Patter space)内出现的“source”字符替换成对应的“dest”字符。



     

     

  • 相关阅读:
    libtorch初体验
    libtorch 常用api函数示例(史上最全、最详细)
    VS2015,vs2019用正则表达式搜索删除空白行的方法
    CMake引入opencv3.1.0编译时includes non-existent path问题解决
    opencv编译的时候的注意事项------如果出现 target glog::glog 找不到的情况,可能是由于glog的版本过低导致的。通常与ceres有关
    ID3D11Multithread 未声明的标识符 opencv 411 opencv400 3411 opencv440 vs2015 都出现这个错误 但是opencv311没有出现这个问题
    错误 LNK2001 无法解析的外部符号 "__declspec(dllimport) bool cv::__termination" (__imp_?__termination@cv@@3_NA) opencv_cudev
    raw.githubusercontent.com无法连接
    编译opencv3.1.0时出现错误:error: ‘NppiGraphcutState’ has not been declared
    Ubuntu16.04 安装g++6
  • 原文地址:https://www.cnblogs.com/Eivll0m/p/3808352.html
Copyright © 2011-2022 走看看