awk学习

awk 学习

  • awk会根据空格和制表符,将每一行分成若干字段,依次用$1$2$3代表第一个字段、第二个字段、第三个字段等等。
     echo "i love you" |awk '{print $0}' //打印所有行
     i love you
     echo "i love you" |awk '{print $1}' //打印第一个字段
     i
     echo "i love you" |awk '{print $2}' //打印第二个字段
     love
    # 格式
    $ awk 动作 文件名
  • 保存/etc/passwd
  • 变量

    1. NF:The variable NF is set to the total number of fields in the input record.
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/var/daemon:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    
    1. awk -F ':' '{print $1}' a.md
    2. awk -F ':' 'NR %2 ==0 {print $1}' a.md //取偶数行
    3. awk -F ':' 'NR >=3 {print $1}' a.md //取当前行>3的
    4. awk '{if ($2 > 18) print $0}' log.txt //取出第年龄>18的
    5. awk '{if ($2 > 18) print $0; else print "------"}' log.txt

你可能感兴趣的:(awk)