我想按每个条目的时间戳对日志条目进行排名。
假设我的grep结果是这样的,每个条目在不同数量的列上具有不同数量的字段和时间:
a, 3, time:123
b, time:124, 4
c, time:122, 5
我应该如何通过管道传递结果,使其看起来像这样?
c, time:122, 5
a, 3, time:123
b, time:124, 4
答案 0 :(得分:1)
请尝试以下方法:
while IFS= read -r line; do
[[ $line =~ time:([0-9]+) ]] && printf "%s\t%s\n" "${BASH_REMATCH[1]}" "$line"
done < file | sort -n | cut -f 2-
time:
子字符串之后的时间。答案 1 :(得分:1)
一般的解决方案是: