示例:
[[email protected] ~]$ ll | awk ‘BEGIN{aa= 1; bb = 2; printf"hello world\n";} {aa++; bb+=2;} END{printf"aa=%s, bb=%s\n", aa, bb;}‘
hello world
aa=5, bb=10
说明:
BEGIN {}内是执行前,仅执行一次
第二个 {} 是每行都执行一次
END{} 内是执行后,仅执行一次
{} 内语句用“;” 分隔;
printf 的输出格式控制与C语言格式控制类似;
如:
[[email protected] ~]$ ll | awk ‘END{printf"%10s %03d\n", "hello world", 10;}‘
hello world 010
例:
[[email protected] WiX]$ ll | awk ‘NR!= 1 {printf"%s %s %s %s %s %s %s\n", $1, $2, $5, $6, $7, $8, $9}‘
-rw-r--r-- 1 19541 Jan 16 2014 cmCPackWIXGenerator.cxx
-rw-r--r-- 1 2616 Jan 16 2014 cmCPackWIXGenerator.h
-rw-r--r-- 1 2822 Jan 16 2014 cmWIXRichTextFormatWriter.cxx
-rw-r--r-- 1 1263 Jan 16 2014 cmWIXRichTextFormatWriter.h
-rw-r--r-- 1 3859 Jan 16 2014 cmWIXSourceWriter.cxx
-rw-r--r-- 1 1540 Jan 16 2014 cmWIXSourceWriter.h
说明: 输出 ll 的结果,且不显示第一行结果,$X 代表ll 结果的第X列
例:
[[email protected] WiX]$ ll | awk ‘BEGIN{num=0;} $9~/.cxx/{num++;} END{printf"num:%d\n", num}‘
num:3
说明:输出ll 结果中第9列含cxx 的文件数目
参考:http://coolshell.cn/articles/9070.html