美文网首页
Linux命令之Sed

Linux命令之Sed

作者: zhangxu0636 | 来源:发表于2016-07-20 08:28 被阅读22次

    以行为单位的新增/删除

    • 删除
    #删除2到5行
    nl /etc/passwd  | sed '2,5d'
    #删除第三行
    nl /etc/passwd | sed '3d'
    #删除从第三行开始到最后一行的行
    nl /etc/passwd | sed '3,$d'
    
    • 新增

    a->目标行后面添加,i ->目标行前面添加

    nl /etc/passwd | sed '2a xuzhang' 
    nl /etc/passwd | sed '2i xuzhang' 
    #添加多行的话,每一行以\隔开就行
    nl /etc/passwd | sed '2a xuzhang\
    maitng'
    

    以行为单位的替换与显示

    • c
    nl /etc/passwd | sed '2,5c No 2-5 number'
    output:
    1 root:x:0:0:root:/root:/bin/bash
    No 2-5 number
    6 sync:x:5:0:sync:/sbin:/bin/sync
    .....(后面省略).....
    
    • p
    #打印5~7行
    nl /etc/passwd | sed -n '5,7p'
    #将匹配到root的行进行打印
    nl /etc/passwd | sed '/root/p'
    

    数据的搜寻并删除

    #将有root的行进行删除。
    nl /etc/passwd | sed '/root/d'
    

    搜寻并执行命令

    #搜寻含有root的行,替换bash成blueshell,并将其打印,多个命令的话,用花括号,并将命令以;隔开。
    nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p}'
    

    数据查找并进行替换

    sed 's/要被取代的字串/新的字串/g',g代表全局替换。

    相关文章

      网友评论

          本文标题:Linux命令之Sed

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