awk工具的使用
2018-01-18 00:52
330 查看
awk工具的使用
awk也是流式编辑器,针对文档中的行来操作,一行 一行的执行。截取文档中的某个段:
head -n2 test.txt | awk -F ' : ' '{print $1}'本例中,-F 选项的作用是指定分隔符。print为打印的动作,用来打印某个字段,
$1为第一个字段,$2为第二个字段,以此类推。$0表示整行。
head -n2 test.txt |awk -F ' : ' ' print $0}'
注意awk的格式,-F后面紧跟单引号,单引号里面是分隔符。print的动作要用{}括起来。否则会报错。print还可以打印自定义内容,但自定义的内容要用双引号括起来,如下所示:
head -n2 test.txt | awk -F ' : ' '{print $1 "#" $2 "#" $3 "#" $4}'
匹配字符或者字符串
awk '/oo/' test.txtawk -F ' : ' '$1 ~/oo/' test.txt
awk -F ' : ' ' /root/ {print $1,$3} /test/ {print $1,$3}' test.txt
条件操作符
awk -F ' : ' '$3=="o" ' /etc/passwd #不加双引号则会认为是数字awk -F ' : ' '$3>=500' /etc/passwd #把uid大于等于500的行打印出来
awk -F ' : ' '$3<$4' /etc/passwd #两个字段之间进行逻辑比较
awk -F ' : ' '$>"5" && $3<"7" /etc/passwd
awk -F ' : ' ' $>1000 || $3=="/bin/bash" ' /etc/passwd
awk的内置变量
awk常用变量有OFS、NF和NR,OFS和-F选项有类似的功能,也是用来定义分隔符的,但是它是在输出的时候定义,NF表示用分隔符分隔后一共有多少段,NR表示行号。head -5 /etc/passwd | awk -F ' : ' '{OFS="#"} {print $1,$3,$4}'
awk -F ' : ' '{OFS="#“}{if ($3>1000) {print $1,$2,$3,$4}}' /etc/passwd
head -n3 /etc/passwd | awk -F ' : ' '{print NF}'
head -n3 /etc/passwd | awk -F ' : ' '{print $NF}'
head -n3 /etc/passwd | awk -F ' : ' '{print NR}'
awk 'NR>40' /etc/passwd
awk -F ' : ' 'NR<20 && $1 ~ /roo/' /etc/passwd
awk中的数学运算
head -n 3 /etc/passwd | awk -F ' : ' '$1="root" 'head -n2 /etc/passwd
awk -F ' : ' '{(tot=tot+$3)}; END {print $0}}' /etc/passwd
相关文章推荐
- Oracle 使用 ass.awk 工具查看 system state dump 说明
- 使用cygwin中的awk工具进行mysql binlog日志查看[利刃篇]
- 读书笔记--find、sed、awk工具的使用
- 01 awk工具的使用
- awk工具的使用
- Linux下文本分析工具awk的简单使用
- awk工具的使用
- 如何在Linux中使用awk工具详解
- Oracle 使用 ass.awk 工具查看 system state dump 说明
- 详解 awk 工具的使用方法(转载)
- (管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
- Shell脚本编程与sed,awk工具的使用--9月15日课程作业
- 详解 awk 工具的使用方法
- 【Linux】awk工具使用方法
- Linux下的sed工具及awk工具的使用
- awk工具使用详解
- linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
- shell常用工具使用——awk、grep以及sed
- AWK工具使用学习笔记(一)
- Linux/Unix工具与正则表达式的POSIX规范--awk使用中遇到的坑