shell中以-f的方式调用awk脚本
2011-07-16 22:02
483 查看
#对文件中的数字进行格式化,保留小数点两位,整数部分每三位一分割
#用法:awk -f frm_num.awk 列号列表 目标文件
#最后一个参数为目标文件,其他为列号;没有列号则对所有数据格式化
#如:awk -f frm_num.awk 1 2 3 4 "a.txt"
#文件名:frm_num.awk
function format_number(STRING, str,flag,str1,str2,i,j,array) {
str=STRING
if(str ~ /^[-+]/){
flag=substr(str,1,1)
str=substr(str,2)
}else
flag=""
i=index(str,"/.")
if(i>0){
str2=substr(str,i+1)
str1=substr(str,1,i-1)
if(length(str2)>2)
str2=substr(str2,1,2)
else if(length(str2)<2)
str2=str2 "0"
str2="/." str2
} else{
str1=str
str2="/.00"
}
i=0
while(length(str1)>3){
array[++i]=substr(str1,length(str1)-2,3)
str1=substr(str1,1,length(str1)-3)
}
array[++i]=str1
str1=""
for(j=i;j>0;j--){
str1=str1 array[j]
if(j>1) str1=str1 ","
}
str=flag str1 str2
return str
}
BEGIN{
for(i=1;i<ARGC-1;i++){
col_list[ARGV[i]]=""
delete ARGV[i]
}
if(ARGC<=2)
flag=0
else
flag=1
}
{
for(m=1;m<=NF;m++)
{
if((flag==0 || m in col_list) && $m ~ /[-+]?[0-9]+(/.[0-9]+)?/)
$m=format_number($m)
}
print
}
#用法:awk -f frm_num.awk 列号列表 目标文件
#最后一个参数为目标文件,其他为列号;没有列号则对所有数据格式化
#如:awk -f frm_num.awk 1 2 3 4 "a.txt"
#文件名:frm_num.awk
function format_number(STRING, str,flag,str1,str2,i,j,array) {
str=STRING
if(str ~ /^[-+]/){
flag=substr(str,1,1)
str=substr(str,2)
}else
flag=""
i=index(str,"/.")
if(i>0){
str2=substr(str,i+1)
str1=substr(str,1,i-1)
if(length(str2)>2)
str2=substr(str2,1,2)
else if(length(str2)<2)
str2=str2 "0"
str2="/." str2
} else{
str1=str
str2="/.00"
}
i=0
while(length(str1)>3){
array[++i]=substr(str1,length(str1)-2,3)
str1=substr(str1,1,length(str1)-3)
}
array[++i]=str1
str1=""
for(j=i;j>0;j--){
str1=str1 array[j]
if(j>1) str1=str1 ","
}
str=flag str1 str2
return str
}
BEGIN{
for(i=1;i<ARGC-1;i++){
col_list[ARGV[i]]=""
delete ARGV[i]
}
if(ARGC<=2)
flag=0
else
flag=1
}
{
for(m=1;m<=NF;m++)
{
if((flag==0 || m in col_list) && $m ~ /[-+]?[0-9]+(/.[0-9]+)?/)
$m=format_number($m)
}
}
相关文章推荐
- awk在shell脚本中引用变量方式
- shell脚本的三种调用方式
- C程序调用shell脚本共有三种方式:system()、popen()、exec系列函数
- 在 Shell 脚本中调用另一个 Shell 脚本的三种方式
- c语言中调用shell脚本的三种方式
- 调用bash shell脚本的方式
- python调用其它脚本:pig,python,shell等等 (如何获取pig脚本执行的返回值)
- Linux-Shell脚本的运行方式
- 在shell脚本中调用sqlplus
- Shell脚本之awk基础语法
- Shell脚本实现温和方式重启Centos系统
- 如何在java程序中调用linux命令或者shell脚本
- shell 后台执行以及隐藏脚本中调用其他脚本隐藏输出
- Shell脚本的基本语法(二) 预定义特殊字符、case语句和函数调用
- java 远程调用shell脚本
- Ganymed SSH-2 for Java系列7之删除远程服务器上的非空目录(运用执行shell脚本的方式)
- java jsp调用shell(带参数)脚本并返回值
- C程序调用shell脚本共有三种方法
- shell检测interface是否已分配ip,qt调用shell脚本
- C中调用shell 脚本