[20200208]awk学习例子.txt
--//链接测试使用awk,http://blog.itpub.net/267265/viewspace-2674776/
--//我当时初始a=909来计算,推测记录增加10%,采用新的子光标。
$ grep "SQL_ID" ez20.txt | uniq -c
1000 SQL_ID basmuva6swhg4, child number 0
101 SQL_ID basmuva6swhg4, child number 1
111 SQL_ID basmuva6swhg4, child number 2
122 SQL_ID basmuva6swhg4, child number 3
134 SQL_ID basmuva6swhg4, child number 4
147 SQL_ID basmuva6swhg4, child number 5
162 SQL_ID basmuva6swhg4, child number 6
178 SQL_ID basmuva6swhg4, child number 7
45 SQL_ID basmuva6swhg4, child number 8
--//当时写的脚本如下;
$ grep "SQL_ID" ez20.txt | uniq -c | awk 'BEGIN {a=909;} {sum=sum+$1;a=a*1.10;print sum, a }'
1000 999.9
1101 1099.89
1212 1209.88
1334 1330.87
1468 1463.95
1615 1610.35
1777 1771.38
1955 1948.52
2000 2143.37
--//越往后误差有点大。改写如下:
$ grep "SQL_ID" ez20.txt | uniq -c | awk 'NR==1 {sum=sum+$1;a=$1 ;print sum,sum }; NR>1 { sum=sum+$1 ;a=a*1.10;print sum, a, sum-a } '
1000 1000
1101 1100 1
1212 1210 2
1334 1331 3
1468 1464.1 3.9
1615 1610.51 4.49
1777 1771.56 5.439
1955 1948.72 6.2829
2000 2143.59 -143.589
--//这样计算也是一样,越往后误差有点大,每一级相差1.注:最后一行不算。修正如下:
$ grep "SQL_ID" ez20.txt | uniq -c | awk 'NR==1 {sum=sum+$1;a=$1 ;print sum,sum }; NR>1 { sum=sum+$1 ;a=a*1.10;print sum, a+NR-1} '
1000 1000
1101 1101
1212 1212
1334 1334
1468 1468.1
1615 1615.51
1777 1777.56
1955 1955.72
2000 2151.59
--//这样就比较接近测试的情况.
$ grep "SQL_ID" ez20.txt | uniq -c | awk 'BEGIN {a=909;} {sum=sum+$1;a=a*1.10;print sum, a+NR-1 }'
1000 999.9
1101 1100.89
1212 1211.88
1334 1333.87
1468 1467.95
1615 1615.35
1777 1777.38
1955 1955.52
2000 2151.37
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2674783/ ,如需转载,请注明出处,否则将追究法律责任。