初始化和統計功能
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