我正在关注这个链接https://stackoverflow.com/a/54599800/10220825 https://stackoverflow.com/a/54599800/10220825
file.txt
Iteration 1
RAM: +2s
Cache: +142ms (total +417ms)
Iteration 2
RAM: +184ms
Cache: +172ms
Searchms: +131ms (total +385ms)
Iteration 3
RAM: +149ms
Searchms: +3.2s
我想删除ms or s
从时间值而不是从名称(例如,不应将 Searchms 删除到搜索)。我也想转换s into ms
by multiply into 1000
如果时间值包含s
并相应打印结果。
预期输出:
RAM: 2000 184 149
Cache: 142 172
Searchms: 131 3200
try.awk
/:/{vals[$1]=vals[$1] OFS $2+0}
END {
for (key in vals)
print key vals[key]
}
执行时:awk -f try.awk file.txt
代码输出:
Cache: 142 172
Searchms: 131 3.2
RAM: 2 184 149
在我的输出中s is not converting to ms.
请建议我如何修改上面的源代码try.awk
将 s 转换为 ms。
新测试用例:file.txt
Iteration 1
RAM: +2s342ms
Iteration 2
RAM: +2s
Iteration 3
RAM: +149ms
Code:
/:/ && $2 ~/ms$/{vals[$1]=vals[$1] OFS $2+0;next}
/:/ && $2 ~/[^m]s$/{vals[$1]=vals[$1] OFS ($2+0)*1000}
END {
for (key in vals)
print key vals[key]
}
预期输出:
RAM: 2342 2000 149
Output:
RAM: 2 2000 149