awk和sed同样是流式编辑器,它也是针对文档中的行来操做的,一行一行的去执行。awk比sed更增强大,它能作到sed能作到的,一样也能作到sed不能作到的。awk工具实际上是很复杂的,可是学那么复杂没有必要,只要能处理平常管理工做中的问题便可。bash
1.截取文档中的某个命令编辑器
-F选项的做用是指定分隔符。若是不加-F选项,则以空格或者TAB为分隔符。print为打印的动做,用来打印某个字段。$1为第1个字段,$2为第2个字段,$0表示整行工具
2.匹配字符或者字符串文档
3.条件操做符字符串
awk中是能够用逻辑符号判断的,好比 ‘==’ 就是等于,也能够理解为 ‘精确匹配’ 另外也有 >, ‘>=, ‘<, ‘<=, ‘!= 等等,值得注意的是,在和数字比较时,若把比较的数字用双引号引发来后,那么awk不会认为是数字,而认为是字符,不加双引号则认为是数字。数学
另外还可使用 && 和 || 表示 “而且” 和 “或者” 的意思。test
4.awk的内置变量awk
awk经常使用的变量有:变量
NF :用分隔符分隔后一共有多少段sed
NR :行数
NF 是多少段,而$NF是最后一段的值, 而NR则是行号。
5.awk中的数学运算
awk能够把段值更改:
习题
答案
1. awk '{print $0}' test.txt 2. awk '/bash/' test.txt 3. awk -F':' '$3=="0"' test.txt 4. awk -F':' '$1=="root"' test.txt |sed 's/root/toor/' 5. awk -F':' '{print $NF}' test.txt 6. awk -F':' 'NR>20' test.txt 7. awk -F':' '$3<$4' test.txt 8. awk -F':' '{print $1"@"$NF}' test.txt 9. awk -F':' '{(sum+=$4)}; END {print sum}' test.txt