bash - 如何打印匹配 grep 模式的文件的文件详细信息

标签 bash shell loops grep xargs

我想打印文件详细信息以及 grep 输出,但无法这样做。例如,对于命令

grep 3456 A.txt

我得到输出

A.txt

但想要输出

-rw-rw-r-- 1 tarun tarun   41356911 Aug 25 01:31 A.txt

我尝试了以下但没有成功:

  1. grep 34567 A.txt | xargs ls -tlr

  2. grep 34567 A.txt |读行时;做 echo "$line"|日期 %s.%N ;完成

  3. grep -Hr 34567 A.txt | awk -F: '{"stat -c %z "$1 |获取行 r;打印 r": "$0 }'

  4. grep 34567 A.txt | awk -F: '{"date -r\""$1"\"+\"%F %R\""|获取线路 d;打印 d,$0}'

最佳答案

grep -Zl 3456 * | xargs -0 ls -l

使用 GNU grep。选项是:

  • grep -Zxargs -0:用 NULL 字节而不是空格分隔输出名称。这样您就可以处理包含空格的文件名。
  • grep -l:只打印匹配的文件名
  • ls -l:标准的 ls 长输出,这似乎是您所要求的。

在最新的 cygwin 上测试。

关于bash - 如何打印匹配 grep 模式的文件的文件详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39145343/

相关文章:

linux - 如果程序没有运行,通过检查他的 pid 重新启动它

Bash 间接引用,其中一个 var 引用多个

windows - Windows 版 Git 更改提交消息?

regex - bash 正则表达式适用于 linux 但不适用于 solaris

php - 每 3 个元素创建一个多维数组

PHP 循环用行填充 flex-parent

mongodb - 将 kubectl exec 的返回值获取到 powershell 脚本中

linux - 在 shell 脚本中计算平均值时如何处理缺失值?

shell - 如何在 UNIX 中将两个行号之间的文本打印到新文件中

ruby-on-rails - Ruby:遍历目录和文件