首页 > 解决方案 > 如何在所有文件中查找具有分配给变量的 %d-%h-%Y 格式的当前日期的行

问题描述

我有一个目录,在该目录下有许多访问文件,例如:

access
access87681
access98709

现在我正在尝试 grep 所有具有当前日期格式的行+%d-%h-%Y

我写了如下:

tm1=$(date '+%d-%h-%Y')
sed -n '/$tm1/p' $dir/access* > $loc/OUD_Req_Res_matrix_data

我正在尝试以上述日期格式 grep 所有当前日期的文件并将它们推送到输出文件$dir/access*中。$tm1$loc/OUD_Req_Res_matrix_data

上面的代码不起作用。请建议

标签: shellunix

解决方案


使用tm1=$(date '+%d-%h-%Y')和访问不带空格的文件,您可以使用:

sed -n "/${tm1}/p" $dir/access*

当日期有斜线时,sed命令会中断。你可以逃避斜线

sed 's#/#\\/#g' <<< "$tm1"

在您的命令中使用它:

sed -n "/$(sed 's#/#\\/#g' <<< "$tm1")/p" $dir/access*

推荐阅读