sed使用

    xiaoxiao2021-04-12  29

    sed(Stream editor)流编辑器。

    功能:

    对一个输入流(以行为单位)进行编辑和处理。

    从标准输入或者文件中一行一行的读取内容,一行一行的执行命令,直到文件结尾。

     

    使用:

    sed [-nefi] '[动作]' [输入文本]

     

    参数:

    -n:不自动打印当前要处理的行。sed每读入一行,都会放入到一个叫Pattern space(模式空间)里,以便于执行编辑命令来处理它。默认情况下,会自动把这一行(Pattern space里的内容)打印出来。如果使用-n参数后,就只有经过sed处理的那一行被列出来。

    q@Q:~/learn$sed -n 'p' test.txt

    Just for test.

    line1:a

    line2:b

    line3:c

    line4:d

     

    -e script多重操作。

    q@Q:~/learn$sed -e '=' -e '1d' -e's/a/instead/' test.txt

    1

    2

    line1:instead

    3

    line2:b

    4

    line3:c

    5

    line4:d

     

    -f file执行file文件里的脚本。

    q@Q:~/learn$ cat sedcmd.sed

    s/b/B/

    4d

    --------------------

    q@Q:~/learn$sed -f sedcmd.sedtest.txt

    Just for test.

    line1:a

    line2:B

    line4:d

     

    -i直接编辑。可生成备份文件。

    q@Q:~/learn$sed -i.bak -e '1d' -e's/a/instead/' test.txt

    q@Q:~/learn$ cat test.txt

    line1:instead

    line2:b

    line3:c

    line4:d

    ---------------------

    q@Q:~/learn$ cat test.txt.bak

    Just for test.

    line1:a

    line2:b

    line3:c

    line4:d

     

    动作:

    a 在指定行的后面追加一行。

    i 在指定行的前面插入一行。

    c 把指定行替换。

    d 删除行。

    p 打印。

    s 字符串替换。

    s/pattern/repacement/flags

    几种flag

    数字,替换第几个匹配的地方。

    g,替换所有。

    p,打印原来的内容。

    w file,将结果写到文件中。

     

    一些其他操作项:

    写入另一个文件。

    q@Q:~/learn$sed '1,3w xxx.txt'test.txt

    Just for test.

    line1:a

    line2:b

    line3:c

    line4:d

    -------------------------------------

    q@Q:~/learn$ cat xxx.txt

    Just for test.

    line1:a

    line2:b

     

    范围控制:

    1)不指定。所有行

    2)指定行号。

    n,m

    nm

    n,$

    n到最后一行

    n,+m

    nn+m

    n~m

    n行开始,每过m行执行一次

    /t1/,/t2/

    第一次找到t1的行到第一次找到t2的行

    转载请注明原文地址: https://ju.6miu.com/read-668041.html

    最新回复(0)