awk 未呈现任何结果

awk 未呈现任何结果

我的目标是获取当前月份在目录中创建的文件。

看起来命令是正确的,但没有呈现任何结果:

Date=`date '+%b'`

echo $Date
Oct

ls -l | awk -v d="$Date" '/d/ {print $NF}'

答案1

你应该这样使用它:

ls -l | awk -v d="$Date" '$0 ~ d {print $NF}'

解释是这里

find但在您的脚本中使用可能会更好。

find . -maxdepth 1 -type f -daystart -ctime -`date "+%d"`

如果你有经典awk而不是gawk

find * -prune -type f -cmin -`date '+%d %H %M' | awk '{print ($1*24+$2)*60+$3}'`

答案2

这里的问题是awk无法告诉d模式内部是否要表示该名称的变量:awk正在尝试匹配文字d。您可以使用参数扩展来代替:

ls -l | awk "/$Date/ {print \$NF}"

也就是说,有两件事需要注意:

相关内容