linux - 在 Linux 中查找某个文件并打印其创建和修改时间
问题描述
我想根据它/他们拥有的特定文本在 Linux 目录中找到一些文件。一旦我找出文件,我想打印创建和修改时间。
例如,我有一个目录 X,它有四个文件,即:x1.txt、x2.txt、x3.text 和 x4.txt,其中包含以下信息。
x1.txt
Name: Mark
Age: 22
Country: USA
x2.txt
Name: Jiff
Age: 26
Country: USA
x3.txt
Name: Sarah
Age: 30
Country: Canada
x4.txt
Name: Heather
Age: 23
Country: USA
我想要的是打印包含“国家:加拿大”文本的文件的创建和修改时间
我所做的是我只是想出了这种格式的文件
# echo $(grep -rn 'Country: Canada' *)
我得到了
x3.txt:3:Country: Canada
我需要首先提取文件名,然后使用名称作为时间命令的输入来获取创建和修改时间。
解决方案
使用-l
grep 选项仅列出文件名:
grep -lrn 'Country: Canada' *
要打印文件的创建/修改时间,请使用stat
:
stat <file>
您可以按照自己的喜好格式化输出:
stat --printf "Created: %w\nModified: %y\n"
综上所述,您可以通过以下xargs
命令将 grep 的输出列表发送到 stat 的输入列表:
grep -lrn 'Country: Canada' * | xargs stat --printf "Created: %w\nModified: %y\n"
推荐阅读
- objective-c - macOS - 无法在命令行应用程序中加载图像
- php - 火币API认证总是失败
- python - 如何在 python 中通过 ssh 连接到 mysql localhost?
- wordpress - Woocommerce - 仅为管理员用户显示付款方式“货到付款”
- python - 如何设置python类继承,使类和实例呈现相同的接口?
- c# - 如何在 Polly 中添加重试次数?
- github - 如何将存储库拉到我的远程服务器?
- awk - 如何用 awk 或 sed 引用每一行的字段
- gcc - __BASE_FILE__ 宏解析完整文件路径,而不仅仅是文件名
- javascript - 引用的变量未定义