添加整数直到小于给定值并仅显示那些行
Adding the integer till it is lesser than given value and display only those lines
帮我显示所有 JOB_ID
直到 Nodes_req
小于可用节点。
即添加 Nodes_req
的所有列直到它小于 Nodes_avail
然后只显示 JOB_ID
Nodes_avail
=50
JOB_ID | Tasks | ptile | Nodes_req
168797 | 126 | 16 | 8
168798 | 126 | 16 | 8
168799 | 126 | 16 | 8
168800 | 126 | 16 | 8
168801 | 126 | 16 | 8
168802 | 126 | 16 | 8
168811 | 126 | 16 | 8
预期输出为“168797 168798 168799 168800 168801 168802
”,如
8*7 = 56
大于 50
所以只显示到 168802
试试这个:
awk '{if((sum+=)<50)print}' File
或更短:
awk '(sum+=)<50' File
样本:
$ awk '{if((sum+=)<50)print}' File
JOB_ID | Tasks | ptile | Nodes_req
168797 | 126 | 16 | 8
168798 | 126 | 16 | 8
168799 | 126 | 16 | 8
168800 | 126 | 16 | 8
168801 | 126 | 16 | 8
168802 | 126 | 16 | 8
只需将7th
字段值添加到变量sum
(我们也可以使用$NF
代替</code>,它会占用最后一个字段)。如果 <code>sum
小于 50
,打印该行。
希望对您有所帮助!
帮我显示所有 JOB_ID
直到 Nodes_req
小于可用节点。
即添加 Nodes_req
的所有列直到它小于 Nodes_avail
然后只显示 JOB_ID
Nodes_avail
=50
JOB_ID | Tasks | ptile | Nodes_req
168797 | 126 | 16 | 8
168798 | 126 | 16 | 8
168799 | 126 | 16 | 8
168800 | 126 | 16 | 8
168801 | 126 | 16 | 8
168802 | 126 | 16 | 8
168811 | 126 | 16 | 8
预期输出为“168797 168798 168799 168800 168801 168802
”,如
8*7 = 56
大于 50
所以只显示到 168802
试试这个:
awk '{if((sum+=)<50)print}' File
或更短:
awk '(sum+=)<50' File
样本:
$ awk '{if((sum+=)<50)print}' File
JOB_ID | Tasks | ptile | Nodes_req
168797 | 126 | 16 | 8
168798 | 126 | 16 | 8
168799 | 126 | 16 | 8
168800 | 126 | 16 | 8
168801 | 126 | 16 | 8
168802 | 126 | 16 | 8
只需将7th
字段值添加到变量sum
(我们也可以使用$NF
代替</code>,它会占用最后一个字段)。如果 <code>sum
小于 50
,打印该行。
希望对您有所帮助!