gpt4 book ai didi

awk - 获取日期小于当前日期的行

转载 作者:行者123 更新时间:2023-12-04 02:30:26 25 4
gpt4 key购买 nike

我有一个文件,每一行的开头都有一个日期。我想获取所有日期小于当前日期的行。

这是我的,

当我使用它时:

awk '$NF < "2020-10-27"' expiry.txt >sample.txt

我能够得到想要的输出

但是当我将“2020-10-27”上面的日期替换为今天的日期时,我没有得到结果

我的脚本:

date=$(date '+%Y-%m-%d')
awk '$NF < "$date"' expiry.txt

文件中的示例日志

2020-05-30: /tmp/abcd
2019-08-21: /tmp/abcde
2020-03-22: /tmp/abcdef

谢谢

最佳答案

您的代码的问题:如果 $date 变量在单引号内,shell 将不会替换它。因此,您将第 1 列中的日期与文字字符串 "$date" 进行比较。并且由于 $ 的 ASCII 值小于 2 的 ASCII 值,$1 值在词法上总是大于字符串 "$date"。因此,没有输出。

如果你有 GNU awk,你可以使用内置的 time functions

gawk '
BEGIN {today = strftime("%Y-%m-%d", systime())}
$1 < today
' Input_file

关于awk - 获取日期小于当前日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64547480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com