嗯,看清楚了,谢谢!但是那jobidlist即最后一个输出的有问题,我再看看;能否也帮我想下,谢谢!bones7456 写了:你看我10楼的。wuy069 写了:你这个明显不行;bones7456 写了:拿这个,加上你的“相关的处理”,应该可以搞定了吧?代码: 全选
$ awk '/lx26-/{node++;print node,$0}' /tmp/1 1 compute-0-0 lx26-amd64 4 4.68 3.9G 3.5G 4.0G 2.9G 2 compute-0-1 lx26-amd64 4 3.26 3.9G 4.2G 4.0G 3.1G 3 compute-0-2 lx26-amd64 4 - 4.1G - 4.0G - 4 compute-0-3 lx26-amd64 4 0.03 3.9G 2.3G 4.0G 0.0 5 compute-0-4 lx26-amd64 12 1.02 3.9G 1.5G 4.0G 0.0 6 compute-0-5 lx26-amd64 4 4.68 3.9G 3.5G 4.0G 2.9G
我是要做awk的循环,每次是输出节点和任务的信息;你这个只是输出了节点,相应的节点任务并没有输出
请教关于awk的一个循环问题(已完成)
- wuy069
- 帖子: 91
- 注册时间: 2011-05-02 11:00
Re: 请教关于awk的一个循环问题
- wuy069
- 帖子: 91
- 注册时间: 2011-05-02 11:00
Re: 请教关于awk的一个循环问题
正确的输出是,bones7456 写了:你看我10楼的。wuy069 写了:你这个明显不行;bones7456 写了:拿这个,加上你的“相关的处理”,应该可以搞定了吧?
我是要做awk的循环,每次是输出节点和任务的信息;你这个只是输出了节点,相应的节点任务并没有输出
代码: 全选
compute-0-0 free 4.68* 4 3.9G 3.5G 4.0G 2.9G 3 6/wuy 7/wuy
compute-0-1 excl 3.26* 4 3.9G 4.2G* 4.0G 3.1G 4 8/tester 9/tester
compute-0-2 down - 4 4.1G - 4.0G - 0
compute-0-3 free 0.03 4 3.9G 2.3G 4.0G 0.0 0
compute-0-4 free 1.02 12 3.9G 1.5G 4.0G 0.0 1 10/wuy
compute-0-5 free 4.68* 4 3.9G 3.5G 4.0G 2.9G 3 11/wuy 12/wuy
代码: 全选
compute-0-0 free 4.68* 4 3.9G 3.5G 4.0G 2.9G 3 6/wuy 7/wuy
compute-0-1 excl 3.26* 4 3.9G 4.2G* 4.0G 3.1G 4 6/wuy 7/wuy 8/tester 9/tester
compute-0-2 down - 4 4.1G - 4.0G - 0 6/wuy 7/wuy 8/tester 9/tester
compute-0-3 free 0.03 4 3.9G 2.3G 4.0G 0.0 0 6/wuy 7/wuy 8/tester 9/tester
compute-0-4 free 1.02 12 3.9G 1.5G 4.0G 0.0 1 6/wuy 7/wuy 8/tester 9/tester 10/wuy
compute-0-5 free 4.68* 4 3.9G 3.5G 4.0G 2.9G 3 6/wuy 7/wuy 8/tester 9/tester 10/wuy 11/wuy 12/wuy
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
- wuy069
- 帖子: 91
- 注册时间: 2011-05-02 11:00
Re: 请教关于awk的一个循环问题
bones7456 写了:在 NF==8 那里把 jobidlist 初始化成空就好了。其实可以把 [node] 都拿掉,不需要数组的。

非常感谢!Thank you very much!
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: 请教关于awk的一个循环问题(已完成)
代码: 全选
cat qhost | awk '/lx26-/{print "#"$0}/@/{if(NF>2){print $1"/"$4};if(NF<=2){print $1}}' | awk 'BEGIN{RS="#";FS="\n"}{if(NF>0)print $1,$2,$3,$4,$5,$6}' | awk 'BEGIN{OFS="\t"}{print $1,$4,$3,$5,$6,$7,$8,NF-8,$9 " " $10 " " $11}' | sed 's/all.q@comp//'
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: 请教关于awk的一个循环问题(已完成)
代码: 全选
cat qhost | awk '/lx26-/{print "#"$0}/@/{if(NF>2){print $1"/"$4};if(NF<=2){print $1}}'
代码: 全选
xxaxx 4
xbx
xbx
xx
xax 3
xbx
xx
xx
xx
包含a的行的行数有许多
包含a的行的后续的不包含a的行的行数为任意,其中包含b的行的也任意
如何做到打印:
包含a的行 +根据包含a的行的后续行的行数与包含a的行上的第二个字段的数值对比的吗结果的不同打印不同的一段字符 +后续行的每一行但不包含b的行不打印
即如上文件如何实现这样排版:
xxaxx 4 大 xbx xbx #由于由于4比后续的行数3大
xax 3 小 xbx
- wuy069
- 帖子: 91
- 注册时间: 2011-05-02 11:00
Re: 请教关于awk的一个循环问题(已完成)
学习了,非常感谢!cao627 写了:经过以上命令以后问题简化为代码: 全选
cat qhost | awk '/lx26-/{print "#"$0}/@/{if(NF>2){print $1"/"$4};if(NF<=2){print $1}}'
其中x为任意个任意的不阔a和b和空格的字符代码: 全选
xxaxx 4 xbx xbx xx xax 3 xbx xx xx xx
包含a的行的行数有许多
包含a的行的后续的不包含a的行的行数为任意,其中包含b的行的也任意
如何做到打印:
包含a的行 +根据包含a的行的后续行的行数与包含a的行上的第二个字段的数值对比的吗结果的不同打印不同的一段字符 +后续行的每一行但不包含b的行不打印
即如上文件如何实现这样排版:
xxaxx 4 大 xbx xbx #由于由于4比后续的行数3大
xax 3 小 xbx