合并 grep 和 ls -lrt 输出的 Linux 命令

标签 linux grep command ls

我在文件夹和子文件夹中有一组日志文件。 我想显示特定日志的出现次数以及文件时间戳。 我在这里简化命令以仅在一个文件夹下搜索以解决问题。

grep 命令可以提供出现次数或文件名,但不能提供时间戳。如果我使用 ls 命令对其进行管道传输,那么我就会丢失出现次数。如果我将 ls 输出通过管道传递给 grep,我就会丢失时间戳。

以下是示例命令。我需要第二个命令文件名之后第一个命令的出现次数。

----/logs/server> grep -c 'sample search text' *  | grep -v :0
i0_server2_wls.log:980
i0_server2_wls.log00005:20
i0_server1_wls.log:4
i0_server1_wls.log00023:186
i0_server1_wls.log00024:767
i0_server1_wls.log00027:49
i0_server1_wls.log00028:401
i0_server1_wls.log00029:199
i0_server1_wls.log00031:8122
i0_server1_wls.log00033:7744
i0_server1_wls.log00034:18476


----/logs/server> grep -l 'sample search text' * | xargs ls -lrt
-rw-r--r-- 1 mygroup myuser  41824670 Jul  8 20:42 i0_server1_wls.log00023
-rw-r--r-- 1 mygroup myuser  71726325 Jul 19 20:45 i0_server1_wls.log00024
-rw-r--r-- 1 mygroup myuser  91704808 Aug 22 17:47 i0_server1_wls.log00027
-rw-r--r-- 1 mygroup myuser  56183363 Aug 29 18:33 i0_server1_wls.log00028
-rw-r--r-- 1 mygroup myuser 162665267 Sep  6 20:14 i0_server1_wls.log00029
-rw-r--r-- 1 mygroup myuser  80384219 Sep 28 22:03 i0_server2_wls.log00005
-rw-r--r-- 1 mygroup myuser 170614866 Nov 19 22:35 i0_server1_wls.log00031
-rw-r--r-- 1 mygroup myuser 142315429 Dec  8 20:48 i0_server1_wls.log00033
-rw-r--r-- 1 mygroup myuser 335498557 Dec 12 22:38 i0_server1_wls.log00034
-rw-r--r-- 1 mygroup myuser  62375653 Dec 13 19:23 i0_server2_wls.log
-rw-r--r-- 1 mygroup myuser  38069112 Dec 13 19:23 i0_server1_wls.log

最佳答案

使用粘贴命令,您可以像这样逐行组合输出:

grep -c 'sample search text' * | grep -v :0 > file1.txt
grep -l 'sample search text' * | xargs ls -lrt > file2.txt
paste -d" " file1.txt file2.txt

关于合并 grep 和 ls -lrt 输出的 Linux 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41128171/

相关文章:

bash - 使用 shell 脚本从日志中提取值

regex - 如何找到开头单词与结尾单词相同的句子?

java - 提取jar到指定目录

c - 在 C 程序中执行带有选项的命令

linux - 在 bash 中获取随机站点名称

python - 在传递可选参数时,在 python 中使用带有 os.tmp 文件的 subprocess.popen

linux - 一些内核ARM代码

linux - ./mv.sh : line 4: cd: 1. 4-1.5.csh: 不是目录

grep - 如何 grep 并执行命令(对于每个匹配项)

java - 如何从正在运行的进程中获取直接输出?