Awk 編程學習筆記之一
要求:按賬號19位、姓名8位、工資8位來排列,且如姓名不足8位在之後補足,工資不足8位則在工資之前補。同時要求去掉工資為0的名單,沒有賬號在前補19位空格,並輸出工資總數加以核對,處理後應如下排列:
4367422926350133100張三 1250.00
4367422926351220178李四 1300.00
蘇五丙 1340.00
4367422926351220178孫六月 1390.00
…… ……
awk程序:
#------------------------------------
#shgz1.sh
sblank=" "
awk ?$NF!="0"{print $0}? $1 > tmp.txt #刪除工資為0的人數
awk ?{
if($1!~/[0-9]/){
printf("%-19.19s%-8.8s%8.2f ","?"$kk"?",$1,$2)} #如果沒有賬號補上空格
else{
printf("%-19.19s%-8.8s%8.2f ",$1,$2,$3)}
}? tmp.txt > $2
awk ?$NF~/[0-9]/{
sum=sum+$NF
}
END{
system("rm tmp.txt")
printf("The sum is%16.2f! ", sum) #輸出工資總數
}? $2
----------------------------------------