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 动做 文件名
变量shell
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