如何使用日期格式捕获动态文件名

时间:2014-05-22 06:51:57

标签: date cat

我可以将命令用于/var/log/20140522.device.log中的设备ID。

这是我的命令。

for i in `cat /var/log/20140522.device.log`; do echo ---$i; done

现在我想通过每日cron工作来实现它,但它无法正常工作。

for i in `cat /var/log/`/bin/date +%Y%m%d`.device.log`; do echo ---$i; done

是否可以将猫和日期放在一行?

2 个答案:

答案 0 :(得分:2)

需要添加$字符,如下所示:

for i in `cat "/var/log/$(date +"%Y%m%d").device.log"`

答案 1 :(得分:1)

是;您可以使用command substution在同一行使用catdate

for file in $(cat /var/log/$(date +'%Y%m%d').device.log); do echo ----$file; done

使用$(…)表示法使嵌套操作比反向刻度表示法简单得多:

for file in `cat /var/log/\`date +'%Y%m%d'\`.device.log`; do echo ----$file; done

你不必考虑需要反斜杠逃逸的地方。

此外,在Bash中,您可以避免使用cat

for file in $(</var/log/$(date +'%Y%m%d').device.log); do echo ----$file; done