搜索墙首页  编程技术  java  asp  ajax  php  c/c#/c++  数据库  oracle  mysql  db2  操作系统  windows  linux  股吧
首页 > 操作系统 > linux
 1         
1楼  yyt 2009-07-11

如下题:
文本:test.log
X001        100
X002        121
X003        12
X004        13
X005        14
X006        23
X007        344
X008        1234
X009        1
X010        10
X011        123

其中第二列为数值,以第二列数值之和为200分段,如下:
X001        X002        221                    ---------前两行之和大于200,打印第一列开始结束值
X003        X007        406                    ---------第3,4,5,6,7行的第二列值和大于200,打印第一列开始结束值
X008        X008        1234                  ---------第8行的第二列值本身已大于200,打印第一列开始结束值
X009        X011        134                  ---------文本结束,虽不足200值,仍打印第一列开始结束值。

各位高手,有没有更优更简单的实现方法?

引用blackold   帅哥 (黑哥) 的解决方案:
awk 'f{t+=$2}!f{printf $1;f=!f;t=$2}t>200{printf "\t%s\t%s\n", $1,t;f=!f}END{if(f)printf "\t%s\t%s\n",$1,t}' urfile

原帖网址:

http://bbs.chinaunix.net/viewthread.php?tid=1494897
 1         
您的发言将按有关规定都会存档,您须为所发表后果负责,请您遵纪守法并注意语言文明。
标题:引用论坛上的经典解决方法
热门关注
标题回复点击
d7se77dy/77dy电影. 77dy是77dy宽频和77dy1331673
黄网最新地址0903
IPP2P模块修改版,最新0.99.16440828
zeh 4.p patch on RHEL 30744
将 Puppy Linux 4.00 安装在U盘里 打造随身系统2695
Apache 超全0689
gcc glibc kernel 版本兼容性 reference0684
[保留]7667
d7se77dy/77dy电影. 77dy是77dy宽频和77dy156650
linux 有啥低级格式化硬盘的软件1644
搜索墙@2009 www.pkwall.com all rights reserved QQ:276471788 [京ICP备09111534号]
声明:本站部分数据来源于网络,仅供参考,如有版权问题,请联系我们,我们将及时删除!转载本站请注明来源