BASH 中的日期匹配未返回正确的值

问题描述 投票:0回答:1

我有一堆脚本正在运行,我应该将文件名与日期匹配,例如 xxxx_xxxx_20240214_xxxx.txt

我使用$(date +%Y%m%d).txt获取文件中的日期,脚本找不到它。但是当我运行类似的东西时 ls -all /home/???/ | grep "xxxx_xxxxx_xxxx_$(date +%Y%m%d).txt" 我得到以下匹配项:

-rw-r--r--。 1根根1363459 2月14日01:10 xxxxx_xxxxx_xxxxx_20240210.txt -rw-r--r--。 1根根1373367 2月14日01:10 xxxxx_xxxxx_xxxxx_20240211.txt -rw-r--r--。 1根根1385752 2月14日01:10 xxxxx_xxxxx_xxxxx_20240212.txt

看起来年份被正确拾取,月份也是如此,但日期仅包含第一个字符。如果我仅将日期变量更改为 %Y%m,它会变得有点奇怪,而不是仅选取 02 - Feb,它还会选取 1 月 01 中的 0...有什么想法吗?我在这里迷失了...我不是一个 bash 编码人员,所以我在这里盲目...谢谢大家

我尝试了日期变量的不同组合,但都没有效果......

这是 ls 的基本输出: enter image description here

我需要用 enter image description here

取回昨天的文件

但是,它会拾取昨天和今天的文件

bash sorting date formatting
1个回答
0
投票

确保正确的日期格式并使用可靠的命令,例如 BASH 中的“date”。验证日期格式,使用引号防止分词,并考虑时区问题。使用“echo”命令进行调试以跟踪变量。如果问题仍然存在,请分享代码片段,以获取更具体的帮助来解决日期匹配问题。

© www.soinside.com 2019 - 2024. All rights reserved.