在 grep 命令中将字符串与变量连接起来

在 grep 命令中将字符串与变量连接起来

我必须按这种模式搜索:

_20181106

20181106 是昨天的日期,因此它必须是一个变量,例如

TZ=aaa24 date +%Y%m%d

如何搜索具有这种模式的文件?

我正在使用 AIX

答案1

在 AIX 上,使用/bin/ksh93

grep "_$(printf '%(%Y%m%d)T' yesterday)" filename

或者:

grep "$(printf '_%(%Y%m%d)T' yesterday)" filename

或者:

yesterday=$(printf '%(%Y%m%d)T' yesterday)
grep "_$yesterday" filename

注意

TZ=aaa24 date

将给出比 UTC 日期早 24 小时的日期,因此仅对给出当地时间遵循 UTC 的昨天日期有效(尽管它可能会在其他时区为您提供一天中某些时间的正确日期)。

答案2

我不知道你的问题中的“aaa24”是什么,但这可能对你有帮助:

date在运行 grep 之前使用命令替换来评估命令。

grep $(date +%Y%m%d) foo

相关内容