从外壳脚本中的日期字符串格式(2021-09-04T20:02:33,315Z)中提取日期、小时、分钟和秒

qvk1mo1f  于 2022-10-23  发布在  Linux
关注(0)|答案(1)|浏览(90)

我有一个日志文件,日志文件中的每一行都包含2021-09-04T20:02:33,315Z格式的时间戳数据,我想从日志文件中只过滤最后30秒的日志。
我发现awk可以用来提取范围内的日期

sudo awk -vDate=$(date -d '30 seconds ago' +%Y-%m-%dT%H:%M:%S,000Z) '{ if ($4 > Date) print Date FS $4}'

但我在命令中使用if条件来提取日期、小时、分钟和秒来检查条件。

juzqafwq

juzqafwq1#

您可以在两次测试之间使用具有Coma(,)的awk中的范围。
就像这样:

awk '$1$2$3 > "Sep3008:47:46", $1$2$3 < "Sep3008:54:04" {print $0}' /var/log/messages

您可以使用您的格式计算之前的时间戳,如您的示例所示:

awk -v TS1=$(date ...) -v TS2=$(date ...) '$4 > TS1, $4 < TS2 { print ...}'

相关问题