shell脚本中给awk命令传参方法

awk命令是一种很方便的字段截取工具,然而在编写shell脚本中,给awk命令传入参数却有着严格的格式,博主经过多次测试,才找到给awk命令传参的方法:

如以下脚本:

#!/bin/bash
##处理脚本
#################
i=$1
echo ----------------开始 $i --------------------------
    for (( j = $[$i+1]; j <= 9990; j++ ))
        do
                sum_tot=0
                sum_sam=0
            for (( k = 2; k <= 21427; k++ ))
                do
                line1=`cat hebing.txt|awk "NR==$i{print}"|awk -F "," '{print $'$k'}'`
                #取出第i行第K个位置的数据,$k必须加单引号声明,否则shell无法识别            
               
               line2=`cat hebing.txt|awk "NR==$j{print}"|awk -F "," '{print $'$k'}'`
                #取出第j行第K个位置的数据
                if [ -z "$line1" -a -z "$line2" ] ;then
                    continue;
                elif [ "$line1" == "$line2" ];then
                    sum_sam=$[$sum_sam+1]
                    sum_tot=$[$sum_tot+1]
                else
                    sum_tot=$[$sum_tot+1]
                fi
            done
                #根据第i行与第j行相同的字段条目进行取值
                 bizhi=$[$sum_sam*100/$sum_tot]
                  if [ $bizhi -lt 80 -a $bizhi -ge 50 ];then
                    echo $i"|"$j"|"$sum_sam"|"$sum_tot"|"$bizhi >>bizhi_50_80.txt
                  elif [ $bizhi -lt 100 -a $bizhi -ge 80 ];then
                    echo $i"|"$j"|"$sum_sam"|"$sum_tot"|"$bizhi >>bizhi_80_100.txt
                  elif [ $bizhi -eq 100 ];then
                    echo $i"|"$j"|"$sum_sam"|"$sum_tot"|"$bizhi >>bizhi_100.txt
                  fi

            
        done
echo  ------------执行完毕 $i---------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值