shell - 如何在所有文件中查找具有分配给变量的 %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
上面的代码不起作用。请建议
解决方案
使用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*
推荐阅读
- android - 如何检查 ROOM 数据库中的记录是否被删除?
- powershell - 退出 Powershell 的键盘快捷键
- html - CSS:过渡时间帮助,包含元素和动态(?)宽度的跨度填充
- microsoft-dynamics - CU 后 Dynamics NAV 合并对象
- reactjs - _this2.props.moveShelf 不是函数
- c# - StaticModel 上没有图像纹理
- javascript - return a promise of an ongoing asynchronous call
- dashboard - 两个数据点之间的 Grafana 差异
- rest - 使用相同的 URI 调用两个不同的 rest 方法
- java - Optimal orchestration of list of network calls and processing tasks in Java