![使用 grep 获取日期格式](https://linux22.com/image/3075/%E4%BD%BF%E7%94%A8%20grep%20%E8%8E%B7%E5%8F%96%E6%97%A5%E6%9C%9F%E6%A0%BC%E5%BC%8F.png)
我看过类似的问题并尝试了大多数建议,但它们都没有让我有任何进展,即使我认为我有一个相当简单的任务:S。我对这整件事相当陌生,所以我已经不知道该尝试什么或我做错了什么......
因此,任务是获取列出的文件行(使用 grep),其中包含短月份名称和日期(例如 Oct 22)。该文件中有一个长格式列表(包含在当前日期创建的文件),因此应该有一些结果。然而,我得到的结果是只检查并发现了月份,而没有检查和发现当天。
到目前为止我尝试过的一些更明智的事情:
grep $(date +"%b %e") *filename*
然后我得到一行“grep:22:没有这样的文件或目录”和一个包含该月(“十月”)所有结果的列表。用+%d %e
or+'%d %e'
或'+%d %e'
代替+"%d %e";
的结果相同$()
。 (我这一天也有一段时间有 %d,这没有什么区别,而且据我所知,无论如何也不重要,因为相关日期现在是 22 日。)
为什么这里不考虑这一天?
答案1
grep "$(date +"%b %d")" *files*
应该会更好。
如果省略双引号,则命令替换的结果$(date +"%b %d")
将被拆分为单独的单词。始终在变量替换"$variable"
和命令替换周围使用双引号"$(somecommand)"
,除非您知道为什么需要将它们省略。