美文网首页
正则表达式---sed

正则表达式---sed

作者: v子午线v | 来源:发表于2018-01-06 16:46 被阅读0次

    sed (stream editor 流编辑器)
    基本语法:
    sed [-n] program [file-list]
    sed [-n] –f program-file [file-list]
    sed 是一个批处理编辑器。可以对来自文件或者标准输入的输入流进行交换。常被用于管道中的过滤器。sed工具从命令行所指定的文件或者标准输入中获取输入流。除非明确指定输出目标,否则将把结果输出到标准输出。

    选项参数
    -n (quiet, silent) 安静模式。加上-n后,只有经过sed特殊处理的那一行才会被列出来
    -e (script, --expression=script) 直接在指令列模式上进行sed动作编辑
    -f (script-file, --file=script-file) 直接将sed的动作写在一个文件内

    Sed 动作
    -i ([SUFFIX], --in-place[=SUFFIX]) 直接修改读取的文件内容,而不是由屏幕输出
    -r (regexp-extended) sed的动作支持的是延伸型正则表示法的语法。(预设是基础正则表示法语法)

    动作说明:[n1, [n2]]function
    n1, n2: 不一定存在,表示选择进行动作
    a (append) 新增,a 的后面可以接字符串,而这些字符串会在新的一行出现(当前行的系一行)
    c (change,replace) 取代,c后面的接字符串,讲匹配的行替换为c后接的字符串
    d (delete) 删除
    i (Insert) 插入, i的后面接字符串,而这些字符串会在新的一行出现(当前行的上一行)
    p (print) 打印,将某个选择的数据打印。通常p会与参数sed –n一起运行
    s (substitution) 取代,可以直接进行取代的工作。通常的搭配是:s/old/new/g
    w (write) 将匹配的内容写入另外一个文件中
    h/H 将 pattern space 拷贝到 hold space
    g/G 将 hold space拷贝到 pattern space

    1)打印含有student的行

    -n 和 p 一起使用表示只打印发生匹配的行

    打印指定的行 打印从第6行开始到含有第一个含有stu结束的行 打印从第8行到最后行 2)插入某些内容

    以上是在含有Deve的行后加上(append) teste

    以上是在含有Deve的行前加上(Insert) teste

    以上为将汉以后deve的整行替换为teset

    3)行内的内容替换 加上-i选项之后文件中的内容被改变 4) 删除匹配的行

    以上分别是
    A. 删除指定的第二行到含有good的行,讲剩余行打印出来
    B. 删除第2行到第6行
    C. 删除含有good的行

    5) 将匹配的行写入另一文件 6) 读取文件中的命令 7) 交换两个几个单词的位置

    以上使用()来表示对应的匹配项, 最多匹配到9项。

    8)&符号表示替换字符串中被找到的部分 9)s-替换 后面的字符可以被认为是新的命令分隔符,代替”/”,但是分隔符一定是s后面的字符 10)逗号表示选定行的范围

    以上打印从含有You的行开始到含有Plan的行之间的行,无论Plan出现在哪儿,之间的行都被打印,如果Plan没出现,中间的行都将被打印
    以上是打印从第3行到含有Plan的行之间的行,如果Plan没出现,中间的行都将被打印


    以上是打印从第3行到含有Plan的行之间的行,如果Plan没出现,中间的行都将被打印 以下部分将You到Plan的行中间含有的better替换为best,并将影响到的行打印出来 11)-e 多点编辑

    以上都是将第1行到第6行删掉,然后将剩余的good替换为better。 第二个示例中是再将Dev替换为def

    相关文章

      网友评论

          本文标题:正则表达式---sed

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