linux基础sed篇

作者: 数据革命 | 来源:发表于2017-06-24 22:27 被阅读6次

    sed介绍

    • sed(Stream EDitor) 是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ),接着用sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed 主要用来自动编辑一个或多个文件, 简化对文件的反复操作
    • sed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像。sed按顺序逐行读取文件。然后,它执行为该行指定的所有操作,并在完成请求的修改之后的内容显示出来,也可以存放到文件中。完成了一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件。在这里要注意一点,源文件(默认地)保持不被修改。sed 默认读取整个文件并对其中的每一行进行修改。说白了就是一行一行的操作
    • 利用被称为管道操作符的|,多个命令由管道连成了管道线。在UNIXLinux系统中,流过管道线的信息(数据)就叫做流(stream)。为了编辑或修改一条管道中的信息,就使用流编辑器(stream editor),这也正是sed这个命令名字的由来。其中,sstream的第一个字母,而ededitor(编辑器)的头两个字母
    sed.png
    • sed用法
      • 格式 sed [OPTION]...... 'script' inputfile....
      • OPTION是选项
      • script 地址命令
      • inputfile 输入文件 (文件可以有多个输入以后会处理第二个)、
      • 这是最简单的格式
    • sed选项
      • 常用选项:
      • -n :不输出模式空间内容到屏幕,即不自动打印
      • -e: 多点编辑
      • -f :/ PATH/SCRIPT_FILE : 从指定文件中读取编辑脚本
      • -r: 支持使用扩展正则表达式
      • d:删除模式空间匹配的行
      • p: 显示模式空间中的内容
      • a [\]text:在指定行 后面 追加文本
    • 支持 使用\n实现多行追加
      • i [\]text :在行前面 插入文本
      • c [\]text :替换行为单行或多行文本
      • w /path/somefile: 保存模式匹配的行至指定文件
      • r /path/somefile:读取指定文件的文本至 模式空间中
      • 匹配 到的行后
      • =: 为模式空间中的行打印行号
      • !:模式空间中匹配行取反处理

    sed选项详解

    -n选项

    • 不输出模式空间内容到屏幕,即不自动打印
    • 区别p可以理解为打印,后面还会详细讲解p的用途
    [root@localhost app]# sed -n  'p' passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    
    [root@localhost app]# sed   'p' passwd    
    root:x:0:0:root:/root:/bin/bash
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    

    d选项

    • 删除模式空间匹配的行
    • 删除第2行,但是磁盘里面的文件还没删除哦,想要删除就用-i,稍后介绍
    [root@localhost app]# cat -n passwd|sed '2d'
         1  root:x:0:0:root:/root:/bin/bash
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
         5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
         6  sync:x:5:0:sync:/sbin:/bin/sync
         7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
         8  halt:x:7:0:halt:/sbin:/sbin/halt
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        10  operator:x:11:0:operator:/root:/sbin/nologin
    
    • 删除奇数行,偶数行用cat -n passwd|sed '2~2d'
    [root@localhost app]# cat -n passwd|sed '1~2d'
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
         6  sync:x:5:0:sync:/sbin:/bin/sync
         8  halt:x:7:0:halt:/sbin:/sbin/halt
        10  operator:x:11:0:operator:/root:/sbin/nologin
        12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
        14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
        16  dbus:x:81:81:System message bus:/:/sbin/nologin
        18  abrt:x:173:173::/etc/abrt:/sbin/nologin
        20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
        22  usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
        24  saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin
        26  rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
        28  chrony:x:991:988::/var/lib/chrony:/sbin/nologin
        30  qemu:x:107:107:qemu user:/:/sbin/nologin
    

    a选项

    • a [\]text:在指定行 后面 追加文本
    • 意思就是在匹配行的后面追加文本
    [root@localhost app]# cat -n passwd|sed '5aasdasdasdasdasdasdasdasd' 
         1  root:x:0:0:root:/root:/bin/bash
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
         5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin  << 我追加的行
    asdasdasdasdasdasdasdasd
         6  sync:x:5:0:sync:/sbin:/bin/sync
         7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
         8  halt:x:7:0:halt:/sbin:/sbin/halt
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        10  operator:x:11:0:operator:/root:/sbin/nologin
        11  games:x:12:100:games:/usr/games:/sbin/nologin
    
    • \n 表示换行的意思可以追加多行
    [root@localhost app]# cat -n passwd|sed '5a\asdasdas\ndfdsdsd\nsdsdsdsd'
         1  root:x:0:0:root:/root:/bin/bash
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
         5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    asdasdas
    dfdsdsd
    sdsdsdsd
         6  sync:x:5:0:sync:/sbin:/bin/sync
         7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
         8  halt:x:7:0:halt:/sbin:/sbin/halt
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        10  operator:x:11:0:operator:/root:/sbin/nologin
    

    i选项

    • i []text :在行前面
    • 和a相反
    [root@localhost app]# cat -n passwd|sed '5i\asdasdas\ndfdsdsd\nsdsdsdsd'
         1  root:x:0:0:root:/root:/bin/bash
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
    asdasdas
    dfdsdsd
    sdsdsdsd
         5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
         6  sync:x:5:0:sync:/sbin:/bin/sync
         7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
         8  halt:x:7:0:halt:/sbin:/sbin/halt
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        10  operator:x:11:0:operator:/root:/sbin/nologin
    

    c选项

    • c []text :替换行为单行或多行文本
    • 就是把中间的行替代
    [root@localhost app]# cat -n passwd|sed '5c\asdasdas'
         1  root:x:0:0:root:/root:/bin/bash
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
    asdasdas
         6  sync:x:5:0:sync:/sbin:/bin/sync
         7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
         8  halt:x:7:0:halt:/sbin:/sbin/halt
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        10  operator:x:11:0:operator:/root:/sbin/nologin
    
    • 还可以多个替换多行如5到7
    [root@localhost app]# cat -n passwd|sed '5,7c\asdasdas'
         1  root:x:0:0:root:/root:/bin/bash
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
    asdasdas
         8  halt:x:7:0:halt:/sbin:/sbin/halt
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        10  operator:x:11:0:operator:/root:/sbin/nologin
    

    w选项

    • w /path/somefile: 保存模式匹配的行至指定文件
    • 意思就是把他匹配到的行另存为一个文件里面
    [root@localhost app]# cat -n passwd|sed '11,21w /app/qqq'    
         1  root:x:0:0:root:/root:/bin/bash
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
         5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
         6  sync:x:5:0:sync:/sbin:/bin/sync
         7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
         8  halt:x:7:0:halt:/sbin:/sbin/halt
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        10  operator:x:11:0:operator:/root:/sbin/nologin
        11  games:x:12:100:games:/usr/games:/sbin/nologin
        12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
        13  nobody:x:99:99:Nobody:/:/sbin/nologin
        14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
        15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
        16  dbus:x:81:81:System message bus:/:/sbin/nologin
        17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
        18  abrt:x:173:173::/etc/abrt:/sbin/nologin
        19  unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
        20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
        21  colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
    
    • 我们去查看下/app/qqq
    [root@localhost app]# cat /app/qqq 
        11  games:x:12:100:games:/usr/games:/sbin/nologin
        12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
        13  nobody:x:99:99:Nobody:/:/sbin/nologin
        14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
        15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
        16  dbus:x:81:81:System message bus:/:/sbin/nologin
        17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
        18  abrt:x:173:173::/etc/abrt:/sbin/nologin
        19  unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
        20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
        21  colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
    

    r选项

    • r /path/somefile ,读取指定文件的文本至 模式空间中匹配 到的行后
    • 意思就是说把文件内容读到本文件里面
    [root@localhost app]# cat -n passwd|sed '5r /etc/issue'
         1  root:x:0:0:root:/root:/bin/bash
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
         5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    \S
    Kernel \r on an \m        <<<意思是把他读到第5行下面
    
         6  sync:x:5:0:sync:/sbin:/bin/sync
         7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
         8  halt:x:7:0:halt:/sbin:/sbin/halt
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        10  operator:x:11:0:operator:/root:/sbin/nologin
    
    • 还可以这样玩读到5到7行
    [root@localhost app]# cat -n passwd|sed '5,7r /etc/issue'
         1  root:x:0:0:root:/root:/bin/bash
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
         5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    \S
    Kernel \r on an \m
    
         6  sync:x:5:0:sync:/sbin:/bin/sync
    \S
    Kernel \r on an \m
    
         7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    \S
    Kernel \r on an \m
    
         8  halt:x:7:0:halt:/sbin:/sbin/halt
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        10  operator:x:11:0:operator:/root:/sbin/nologin
    

    =号选项

    • =: 为模式空间中的行打印行号
    • 意思就是打印行号
    [root@localhost app]# sed  '='  passwd     
    1
    root:x:0:0:root:/root:/bin/bash
    2
    bin:x:1:1:bin:/bin:/sbin/nologin
    3
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    4
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    5
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    6
    sync:x:5:0:sync:/sbin:/bin/sync
    7
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    8
    halt:x:7:0:halt:/sbin:/sbin/halt
    9
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10
    operator:x:11:0:operator:/root:/sbin/nologin
    11
    

    !选项

    • !: 模式空间中匹配行取反处理
    [root@localhost app]#  cat -n passwd |sed -n '10!p'
         1  root:x:0:0:root:/root:/bin/bash 
         2  bin:x:1:1:bin:/bin:/sbin/nologin  
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
         5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
         6  sync:x:5:0:sync:/sbin:/bin/sync
         7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
         8  halt:x:7:0:halt:/sbin:/sbin/halt
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        11  games:x:12:100:games:/usr/games:/sbin/nologin
        12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
        13  nobody:x:99:99:Nobody:/:/sbin/nologin
        14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
        15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
        16  dbus:x:81:81:System message bus:/:/sbin/nologin
        17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
        18  abrt:x:173:173::/etc/abrt:/sbin/nologin
    

    sed工具

    • s/// :查找替换, 支持使用其它分隔符,s@@@ ,s###
    • 替换标记:
    • g: 行内全局替换
    • p: 显示替换成功的行
    • w /PATH/TO/SOMEFILE :将替换成功的 行 保存至文件中

    s/// :查找替换,#

    • 替换大写ROOT,但是只替换一行里面得到第一个,第二行不会替换
    [root@localhost ~]# sed 's/root/ROOT/' qqq 
    ROOT  root root root
    ROOT 
    ROOT
    ROOT
    ROOT
    ROOT
    ROOT
    ROOT
    ROOT
    ROOT
    
    • 还可以指定偶数或奇数哦
    [root@localhost ~]# sed '2~2s/root/ROOT/' qqq       
    root  root root root
    ROOT 
    root
    ROOT
    root
    ROOT
    root
    ROOT
    root
    ROOT
    
    • 分隔符用@,%,#等等都可以
    [root@localhost ~]# sed '2~2s@root@ROOT@' qqq   
    root  root root root
    ROOT 
    root
    ROOT
    root
    ROOT
    root
    ROOT
    root
    ROOT
    

    p选项

    • p: 显示替换成功的行
    • 意思就是说在显示
    [root@localhost ~]# sed '2~2s@root@ROOT@gp' qqq
    root  root root root
    ROOT 
    ROOT   <<<把匹配成功的行在打印一遍
    root
    ROOT
    ROOT
    root
    ROOT
    ROOT
    root
    ROOT
    ROOT
    root
    ROOT
    ROOT
    
    • w 就是把匹配到的另存为一下 和上面的w选项一样

    地址定界

    • 单地址:
    • #: 指定的行
    • /pattern/ :被此处模式所能够匹配到的每一行
    [root@localhost app]# sed '2p' passwd   
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin   把第2行显示2次
    daemon:x:2:2:daemon:/sbin:/sbin/nologin 
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    
    • 显示r开头的行,下面我是以正则表达式来写的
    [root@localhost app]# sed  -n /^r/p passwd 
    root:x:0:0:root:/root:/bin/bash
    rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
    rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
    radvd:x:75:75:radvd user:/:/sbin/nologin
    rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin 
    

    地址范围详解(1)

    • 显示3到第10行
    [root@localhost app]# sed  -n 3,6p passwd   
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    [root@localhost app]# sed  -n 3,10p passwd  
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    
    • 我们来用cat /etc/passwd来看看
    [root@localhost app]# cat -n /etc/passwd
         1  root:x:0:0:root:/root:/bin/bash
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
         5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
         6  sync:x:5:0:sync:/sbin:/bin/sync
         7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
         8  halt:x:7:0:halt:/sbin:/sbin/halt
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        10  operator:x:11:0:operator:/root:/sbin/nologin
    
    • 还可以用+号来表示加行号,意思是在3的基础之上加10行
    [root@localhost app]# sed  -n 3,+10p passwd          
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    

    地址范围详解(2)

    • 第二个地址范围作用
      -我搜索的是以h和s开头的行,看见没他是一行一行的搜索的
    [root@localhost app]# sed -n '/^h/,/^s/p' passwd 
    halt:x:7:0:halt:/sbin:/sbin/halt    <<<<<<<这是开头
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin 
    systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin  <这是结尾
    

    地址范围详解(3)

    • 这是从第3行开始找到s开头的行
     [root@localhost app]# sed -n '3,/^s/p' passwd 
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    

    步进

    • 1~2 奇数行
    • 下面是打印奇数行
    [root@localhost app]# cat -n passwd|sed -n '1~2p' 
         1  root:x:0:0:root:/root:/bin/bash
         3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
         5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
         7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
         9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
        11  games:x:12:100:games:/usr/games:/sbin/nologin
        13  nobody:x:99:99:Nobody:/:/sbin/nologin
        15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
        17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
        19  unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
        21  colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
        23  geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin
        25  libstoragemgmt:x:992:990:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
        27  rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
        29  radvd:x:75:75:radvd user:/:/sbin/nologin
        31  ntp:x:38:38::/etc/ntp:/sbin/nologin
    
    • 2~2 偶数行
    • 打印偶数行
    [root@localhost app]# cat -n passwd|sed -n '2~2p'  
         2  bin:x:1:1:bin:/bin:/sbin/nologin
         4  adm:x:3:4:adm:/var/adm:/sbin/nologin
         6  sync:x:5:0:sync:/sbin:/bin/sync
         8  halt:x:7:0:halt:/sbin:/sbin/halt
        10  operator:x:11:0:operator:/root:/sbin/nologin
        12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
        14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
        16  dbus:x:81:81:System message bus:/:/sbin/nologin
        18  abrt:x:173:173::/etc/abrt:/sbin/nologin
        20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
        22  usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
        24  saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin
        26  rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
        28  chrony:x:991:988::/var/lib/chrony:/sbin/nologin
        30  qemu:x:107:107:qemu user:/:/sbin/nologin 
    

    相关文章

      网友评论

        本文标题:linux基础sed篇

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