我有一个文件,其中包含一个任务名称在第一列和所需的时间来完成任务在第二列如下:
Task2, 3421
Task3, 3300
Task1, 1000
Task2, 1100
Task3, 1200
Task3, 1209
Task4, 1299
Task3, 1289
Task1, 1389
Task2, 1211
Task5, 1216
Task2, 1416
Task1, 2100
Task6, 2416
Task5, 2216
Task7, 1116
现在我必须找到最小和最大的时间为每个任务和输出在下面的格式
task, maxtime, min time
比如说
Task1, 1000, 2100 (from the data given above)
7条答案
按热度按时间yqkkidmi1#
您可以尝试使用
awk
你会得到
pod7payv2#
另一种方法是先按column1排序,然后按column2排序,然后对每个任务取第一个和最后一个值,就像这样
样品运行:
xxe27gdn3#
使用
gawk
的array of arrays:示例here。
ejk8hzay4#
这里是另一种选择
pqwbnv8z5#
使用
sort
、sed
和awk
的另一个答案仅使用
sort
和sed
的替代解决方案你会得到
h4cxqtbf6#
sort
第一列和第二列,然后awk它。这个解决方案的好处(awk部分)是它不会将数据存储在内存中并最终转储出来,而是在找到新的$1
后输出数据。这里:l5tcr1uw7#
这主要是bash,如果你对此有一些问题,我可以用其他东西代替awk命令...(例如
colrm
,如果时间总是在同一列中开始)。只要确保数据文件以空行结尾即可。
示例: