zoukankan      html  css  js  c++  java
  • [svc]sed&awk过滤行及sed常用例子

    - sed过滤行
    sed '2p'
    sed '2,5p'
    sed '2p;3p;4p'
    
    - awk过滤行
    awk 'NR==2'
    awk 'NR>=2 && NR <=3'
    awk 'NR==2||NR==3||NR==4'
    
    - awk条件过滤
    awk '{if($3>10) print $0}'
    

    过滤某1行

    sed过滤第2行

    [root@n1 ~]# sed -n '2p' /etc/passwd
    bin:x:1:1:bin:/bin:/sbin/nologin
    

    awk过滤第2行

    [root@n1 ~]# awk 'NR==2' /etc/passwd
    bin:x:1:1:bin:/bin:/sbin/nologin
    

    过滤2<i<4行

    sed过滤2<i<4行

    [root@n1 ~]# sed -n '2,4p' /etc/passwd
    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
    

    awk过滤2<i<4行

    [root@n1 ~]# awk -F 'NR>=2 && NR<=4' /etc/passwd
    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
    

    过滤>=20行

    [root@n1 ~]# awk 'NR>=20' /etc/passwd 
    ntp:x:38:38::/etc/ntp:/sbin/nologin
    mysql:x:1000:1000::/home/mysql:/sbin/nologin
    

    第1 3 5行

    sed过滤第1 3 5行

    [root@n1 ~]# sed -n '1p;3p;4p' /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    

    awk过滤第1 3 5行

    [root@n1 ~]# awk "NR==1||NR==3||NR==5" /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    

    第3列>3 第3列<15的行

    awk过滤: 3<第3列<15

    [root@n1 ~]# cat /etc/passwd|awk -F ':' '{if($3>10 && $3<15) print $0}'
    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
    

    另一个例子: 如何显示文本file.txt中第二大列大于56789的行?

    awk -F "," '{if($2>56789){print $0}}' file.txt
    

    sed常用例子

    • 获取文件除后缀外文件名
    filename_exclude_suffix=`echo $1|sed 's#.[^.]*$##'`
    
    $ echo a.b.c.bin | sed 's/.[^.]*$//'
    a.b.c
    
    • 给文件某一样行首加#
    - 如常用注释crontab
    sed -i 's/^/#/' /var/spool/cron/root
    
    • 替换行(修改配置)
    sed -i "/ServerID/c ServerID = ${server_id}" php.ini
    
  • 相关阅读:
    Python的collections之defaultdict的使用及其优势
    Python的collections之namedtuple的使用及其优势
    【转】Python 代码批量抓取免费高清图片!
    Python之Django之views中视图代码重复查询的优化
    【转】把sqlite3数据导入到MySQL中
    【转】项目搬迁,快捷导出环境依赖包到requirements.txt
    聊聊模板方法模式,装饰器模式以及AOP
    [算法]股票问题
    [数据]matplotlib总结
    [算法]谷歌笔试题:Beautiful Numbers
  • 原文地址:https://www.cnblogs.com/iiiiher/p/8621978.html
Copyright © 2011-2022 走看看