sed命令

作者: 古寒飞 | 来源:发表于2017-06-26 14:46 被阅读23次

    sed命令

    # sed [参数] ‘<条件>’ <文件名>

    [参数]

    -n  不再显示模式空间里的内容(默认是显示的)

    -i  直接修改源文件

    -e  同时执行多个匹配操作

    -r  表示执行正则扩展

    -f   读取预先编写好的流处理文件(每个操作独占一行)

    例如:sed -f /tmp/1.txt /etc/fstab

    <条件>

    01---(d:删除某一行)

    02---(p:显示某一行)

    03---(a:在后面追加一行)

    04---(i:在前面追加一行)

    05---(c:替换某一行内容)

    06---(=:显示行号)

    07---(s/查找内容/替换内容/[修饰符]:查找并替换)

    08---(r   file:将fileli的内容添加到符合条件的行后面)

    09---(w  file:将匹配后的内容写入到file文件内)

    示例:

    01---(d:删除某一行)

    删除第5行

    sed '5d' /test/aaa.txt  

    02---(p:显示某一行)

    显示“任意字符开头”的行

    sed '/^./p' /test/aaa.txt   

    03---(a:在后面追加一行)

    在“符合条件的行后面追加新行”

    sed '/^abc/a \Hello word' /test/aaa.txt  

    04---(i:在前面追加一行)

    在“符合条件的行前面追加新行”

    sed '/^abc/i \Hello word' /test/aaa.txt  

    05---(c:替换某一行内容)

    替换“第7行的内容为:Hello word"

    sed '7c \Hello word' /test/aaa.txt  

    06---(=:显示行号)

    显示最后一行的行号

    sed '$=' /test/aaa.txt  

    07---(s/查找内容/替换内容/[修饰符]:查找并替换)

    查找每一行中的abc并替换为ccc

    sed 's/abc/ccc/[修饰符]' /test/aaa.txt  

    [修饰符]:
              g:替换每一行所有的字符
               i:忽略大小写

    [补充]:默认只替换每行第一次匹配到的字符

    08---(r   file:将fileli的内容添加到符合条件的行后面)

    在文件的第n行后追加文件里的内容

    sed '2r /etc/abc.txt' /test/aaa.txt 

    09---(w   file:将匹配后的内容写入到file文件内)

    将符合条件的内容,另存到file文件中

    sed '/^abc/w /etc/abc.txt' /test/aaa.txt   

    相关文章

      网友评论

          本文标题:sed命令

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