zoukankan      html  css  js  c++  java
  • 偶被秒杀了!!!

    苍天啊!!!这就是差距!!!偶花了多半天时间给学姐写的脚本,她的老大一条命令就给解决了!!!无颜见江东父老啊。。。

    首先说下,功能是把a中TIME和b中的TIME相同的OUT_FLOW值加在file1中,并且多加一列,该列值为1(当OUT_FLOW在UP和LOW之间)或0(当OUT_FLOW不在UP和LOW之间)

    b:

    TIME         NAME  C_NAME        UP        LOW 

    a:

    TIME         C_NAME        OUT_FLOW  

    这是我的代码。。。

    #!/bin/sh
    
    UP_LOW_FILE="/b"
    OUT_FLOW_FILE="/a"
    NEW_OUT_FLOW_FILE="/c"
    NEW_UP_LOW_FILE="/d"
    NEW_FILE="/comb"
    
    sed "s/\r//;s/^ //;/^$/d" $UP_LOW_FILE > $NEW_UP_LOW_FILE
    sed "s/\r//;s/^ //;/^$/d" $OUT_FLOW_FILE > $NEW_OUT_FLOW_FILE
    cp $NEW_UP_LOW_FILE $NEW_FILE
    
    j=1
    num=1000000
    while read v2
    do
    	a2=`echo $v2 | awk '{print $1}'`
            b2=`echo $v2 | awk '{print $2}'`
            c2=`echo $v2 | awk '{print $3}'`
            d2=`echo $v2 | awk '{print $4}'`
            d2=`echo "scale=2;$d2/$num"|bc`
    
    	while read v1
    	do
    		a1=`echo $v1 | awk '{print $1}'`
    	        b1=`echo $v1 | awk '{print $2}'`
            	c1=`echo $v1 | awk '{print $4}'`
    		up=`echo $v1 | awk '{print $5}'`
    		low=`echo $v1 | awk '{print $6}'`		
    
    		if [ "$j" -eq "1" ]
            	then
                    	sed -i "s/$v1/&\tOUT_FLOW/g" $NEW_FILE			
    			sed -i "s/$v1\tOUT_FLOW/&\tTROUBLE/g" $NEW_FILE			
    			j=$(($j+1))
                    	continue
            	fi
    
    		if [ "$a1" = "$a2" ] && [ "$b1" = "$b2" ] && [ "$c1" = "$c2" ]
    		then
    			sed -i "s/$v1/&\t$d2/g" $NEW_FILE
    
    			if [ `echo "$up >= $d2 && $low <= $d2" |bc` ]
    			then
    				sed -i "s/$v1\t$d2/&\t0/g" $NEW_FILE
    			else 
                                    sed -i "s/$v1\t$d2/&\t1/g" $NEW_FILE
                            fi
    		fi
    	done < $NEW_UP_LOW_FILE
    	j=$(($j+1))
    done < $NEW_OUT_FLOW_FILE
    

      

    请注意!!一定注意!!!奇迹出现了!!!

    这是那位老大的代码:

    awk 'NR==FNR{key=$1" "$2" "$3;a[key]=$4}NR>FNR{print $0,a[$1" "$2" "$4]/1000000}' a b | awk '{if($7<=$5&&$7>=$6) print $0,"0";else print $0,"1"}' > comb
    

    亲,有木有!!!只有一行代码,有木有!!!尼玛我咋不知道用NR,FNR,有木有!!!

    太坑爹了,有木有!!!尼玛我怎么就没想到赋给一个变量,再打印出来,有木有!!!

    都花时间在sed了上,有木有!!!

    膜拜那位老大!= -  

  • 相关阅读:
    宿舍局域网的应用
    宿舍无线局域网的组建
    宿舍局域网与Internet连接
    宿舍有线局域网的组建
    设置Windows 远程协助与远程桌面
    家庭局域网接入Internet
    组建Windows家庭组
    OpenGL3D迷宫场景设计
    [Cacti] cacti监控mongodb性能实战
    (视频)《高速创建站点》 4.2 完结篇 – 应用运营vs.发射卫星,遥測(Telemetry) 技术
  • 原文地址:https://www.cnblogs.com/aaronwxb/p/2150532.html
Copyright © 2011-2022 走看看