Awk 编程学习笔记之一

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

Awk 编程实例分析(学习笔记之一)

文件处理

1.有文件gz.txt(工资)

4367422926350133100 张三 1250.00

4367422926351220178 李四 1300.00

4367422926351220546 王二 0

苏五丙 1340.00

4367422926351220178 孙六月 1390.00

…… ……

要求:按账号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\n","'"$kk"'",$1,$2)} #如果没有账号补上空格

else{

printf("%-19.19s%-8.8s%8.2f\n",$1,$2,$3)}

}' tmp.txt > $2

awk '$NF~/[0-9]/{

sum=sum+$NF

}

END{

system("rm tmp.txt")

printf("The sum is%16.2f!\n", sum) #输出工资总数

}' $2

----------------------------------------

本人刚刚开始学awk,也会把自己的一些心得与体会发上来其中尚有许多不成熟的地方,愿得各位指正!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航