如何使用awk shell脚本(如下所示)在时间A(格式为“hh:mm:ss”)和时间B之间对行进行排序?

时间:2013-03-09 09:06:34

标签: linux shell unix awk

我希望使用awk shell脚本(格式化time A格式time B"00:00:00"之间的行进行排序(通过直接比较时间时间列):

awk '{
        if ("15:21:14" <= $1 && $1 <= "15:51:14")
        {print $0}
     }'

我得到了正确的排,但这对我来说是完全正确的吗? 如果没有,那么正确的方法是什么?

1 个答案:

答案 0 :(得分:1)

假设当你说“......我想对行进行排序......”你真的意味着你想要选择行,这里是如何用awk写的:

awk '("15:21:14" <= $1) && ($1 <= "15:51:14")' file

只要所有时间戳都遵循相同的格式并且每个数字使用一个完整的2位数,填充一位数小时,例如前导零,这将有效。如果要对结果进行排序,请将输出通过管道排序:

awk '("15:21:14" <= $1) && ($1 <= "15:51:14")' file | sort