初始化和统计功能
awk BEGIN块
awk 允许定义一个BEGIN块,用于在开始处理输入文件中的文本之前执行这个块中的动作.
awk END块
awk 允许定义一个END块, 用于在处理了输入文件中的所有行之后执行这个块中的动作.
$ cat /etc/passwd |awk 'BEGIN {count=0;print "[start] user count is ",count} {count=count+1;print $0} END{print "[end] user count is ",count}'
[start] user count is 0
root:x:0:0:root:/root:/bin/bash
....
[end] user count is 44
批量执行bash命令
$ seq 0 9 |awk 'BEGIN {SRC="./odom/"; DES="/out/"} {print "cp " SRC "odometry_loc.txt."$1 " " DES $1 "/odometry_loc.txt" } ' |sh
cp .//odom/odometry_loc.txt.0 /out/0/odometry_loc.txt
cp .//odom/odometry_loc.txt.1 /out/1/odometry_loc.txt
cp .//odom/odometry_loc.txt.2 /out/2/odometry_loc.txt
cp .//odom/odometry_loc.txt.3 /out/3/odometry_loc.txt
cp .//odom/odometry_loc.txt.4 /out/4/odometry_loc.txt
cp .//odom/odometry_loc.txt.5 /out/5/odometry_loc.txt
cp .//odom/odometry_loc.txt.6 /out/6/odometry_loc.txt
cp .//odom/odometry_loc.txt.7 /out/7/odometry_loc.txt
cp .//odom/odometry_loc.txt.8 /out/8/odometry_loc.txt
cp .//odom/odometry_loc.txt.9 /out/9/odometry_loc.txt