首页 > 代码库 > awk
awk
AWK程序是由一系列模式--动作对组成的,写做
pattern { action }
其中pattern
表示AWK在数据中查找的内容,而action
是在找到匹配内容时所执行的一系列命令。输入行被分成了一些记录:记录默认由换行符分割,因此输入会按照行进行分割。程序使用给定的条件一个个的测试每条记录,并执行测试通过的条件所对应的action
。pattern
和action
都可以省略不写。无pattern
默认匹配全部的记录;而无action
则是打印原始记录。简单的AWK表达式之外,pattern
可以是BEGIN
或END
;这两种条件对应的action
分别是读取所有的记录之前和之后。同时,如pattern1, pattern2
的条件表示符合条件pattern1
和pattern2
的记录及其之间的部分
$ cat grepinawk pattern=$1 shift awk ‘/‘$pattern‘/ { print FILENAME ":" $0 }‘ $* $
awk -F\" ‘/^DocumentRoot/{print $2}‘ $(httpd -V | awk -F\" ‘/\.conf/{print $2}‘)寻找DocumentRoot (Apache)
history | awk ‘{a[$2]++}END{for(i in a){print a " " i}}‘ | sort -rn | head > /tmp/cmds | gnuplot -persist <(echo ‘plot "/tmp/cmds" using最常用的命令
awk ‘(length>t) {t=length} END {print t}‘ *.cpp打印出代码中长度最长的那一行
$ awk ‘(length>t) {t=length} END {print t}‘ *.java
3123
awk -F: ‘BEGIN{a[NULL]=0;dupli[NULL]=0;}{if($3 in a){print a[$3];print ;}else a[$3]=$0;} ‘ /etc/passwd | sort -t: -k3 -n | sed -e ‘s/^/‘$(ho 在/etc/passwd里显示所有重复的UIC行
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。