Emi*_*mil 6 unix bash performance solaris
我在一个文件中有两列,我想自动对每行的两个值求和
例如
read write
5 6
read write
10 2
read write
23 44
Run Code Online (Sandbox Code Playgroud)
我想总结每行的"读"和"写".总结之后,我找到最大总和并将该最大值放在一个文件中.我觉得我必须使用grep -v来消除每行的列标题,这就像答案中所说的那样,使得代码效率低下,因为我只是为了读取一行而贪图整个文件.
我目前在一个bash脚本中(在一个for循环中,其中$ x是文件名)将这些列逐行求和
lines=`grep -v READ $x|wc -l | awk '{print $1}'`
line_num=1
arr_num=0
while [ $line_num -le $lines ]
do
arr[$arr_num]=`grep -v READ $x | sed $line_num'q;d' | awk '{print $2 + $3}'`
echo $line_num
line_num=$[$line_num+1]
arr_num=$[$arr_num+1]
done
Run Code Online (Sandbox Code Playgroud)
但是,要汇总的文件有270,000多行.该脚本现在已经运行了几个小时,而且还没有完成.有没有更有效的方式来写这个,所以它不需要这么长时间?
归档时间: |
|
查看次数: |
6062 次 |
最近记录: |