Sed命令

作者: 无昵称啊 | 来源:发表于2019-11-09 10:40 被阅读0次

    #sed命令文件操作

    sed命令概览

    新增 a

    sed '2a testContent' test.txt     在第 2 行后面新增一行内容

    sed '1,3a testContent' test.txt     在原文的第 1~3 行后面各新增一行内容

    替换 c

    sed '2c testContent' test.txt     将第 2 行内容整行替换

    sed '1,3c testContent' test.txt     将第 1~3 行内容替换成一行指定内容

    删除 d

    sed '2d' test.txt     删除第 2 行

    sed '1,3d' test.txt     删除第1~3行

    插入 i

    sed '2i testContent' test.txt     在第 2 行前面插入一行内容

    sed '1,3i testContent' test.txt     在原文的第 1~3 行前面各插入一行内容

    打印 p

    sed '2p' test.txt     重复打印第 2 行

    sed '1,3p' test.txt     重复打印第1~3行

    sed -n '2p' test.txt     只打印第 2 行

    sed -n '1,3p' test.txt     只打印第 1~3 行

    sed -n '/user/p' test.txt     打印匹配到user的行,类似grep

    sed -n '/user/!p' test.txt!      反选,打印没有匹配到user的行

    sed -n 's/old/new/gp' test     只打印匹配替换的行

    当被替换文本内容中存在大量/时,可使用#来替换sed命令的/

    替换 s

    sed 's#old#new\nnew#' test.txt     匹配每一行的第一个old替换为两行new

    sed -i 's/^old/new/g' test.txt 匹配以old开头的行,将old替换为new

    sed -i 's/old&/new/g' test.txt 匹配以old结尾的行,将old替换为new

    sed 's/old/new/gi' test.txt     匹配所有old替换为new,g 代表一行多个,i 代表匹配忽略大小写

    sed '3,9s/old/new/gi' test.txt     匹配第 3~9 行所有old替换为new

    参数 -e

    sed -e 's/系统/00/g' -e '2d' test.txt     执行多个指令

    参数 -f

    sed -f ab.log test.txt     多个命令写进ab.log文件里,一行一条命令,效果同-e

    文章链接:https://www.cnblogs.com/zhangzongjian/p/10708222.html

    相关文章

      网友评论

          本文标题:Sed命令

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