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

标签 linux shell unix awk

我想使用 awk shell 脚本以 "00:00:00" 格式对 time Atime B 之间的行进行排序,例如 (通过直接比较时间的时间列):

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

我得到了正确的行,但我这样做绝对正确吗?
如果不是,正确的方法是什么?

最佳答案

假设当您说“...我想对行进行排序...”时您的意思是您想要选择行,下面是如何在 awk 中编写它:

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

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

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

关于linux - 如何使用 awk shell 脚本(如下所示?)对时间 A(格式为 "hh:mm:ss")和时间 B 之间的行进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15309003/

相关文章:

linux - 无法删除名为 ";"的未知文件

node.js - Electron 打包应用程序问题 - 许可证和 node.dll

Python3 运行别名 Bash 命令

linux - 如何复制文件及其路径下的所有目录

linux - 为什么 Bash 对启动文件有如此奇怪的行为

linux - 如何按列排序并随机打破关系

linux - 系统重启后 systemctl 服务未启动

linux - 在提示中包含字符 UTF-8

Linux自由命令含义

bash - 使用导出将环境变量附加到另一个环境变量