linux - 如何使用一行命令同时解析多个文件(Linux/Unix)

标签 linux awk cat

我需要解析的日志文件很多,下面是示例结构。 我需要用一行命令(Linux/Unix)同时查看每个目录下的debug.log文件内容。可能与 awk/sed/cat 等。 目录数量(1、2、3、4 ...)各不相同。我需要用名称而不是“*”来限制目录。

1/logs/debug.log
2/logs/debug.log
3/logs/debug.log
4/logs/debug.log
5/logs/debug.log
6/logs/debug.log

如果每条debug.log内容如下:

In 1/logs/debug.log: finished. 
               Please go ahead next step.     
In 2/logs/debug.log: failed.      
In 3/logs/debug.log: finished. 
               Please go ahead next step.     
In 4/logs/debug.log: finished. 
               Please go ahead next step.     
In 5/logs/debug.log: Error.       
In 6/logs/debug.log: finished. 
               Please go ahead next step.     

预期产出:

1: finished. 
1: Please go ahead next step.     
2: failed.    
3: finished. 
3: Please go ahead next step.     
4: finished. 
4: Please go ahead next step.     
5: Error.     
6: finished. 
6: Please go ahead next step.

很抱歉提出非常复杂的问题,但如果您能告诉我解决方案的方向,我们将不胜感激。

我得到了答案

需要使用'Loop'遍历所有子目录。

最佳答案

awk -v OFS=': ' 'FNR==1{dir=FILENAME; sub("/.*","",dir)} {print dir, $0}' */logs/debug.log

关于linux - 如何使用一行命令同时解析多个文件(Linux/Unix),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38603346/

相关文章:

r - 如何使用 apply、cat 和 print,而不获取 NULL

video - 如何使用 ffmpeg 合并两个 avi 文件?

php - Imagick - 此图像格式没有解码委托(delegate)

windows - 如何在 Linux 中使用 POSIX 方法从文件中读取 Unicode-16 字符串?

linux - 使用 netcat (nc) 作为 HTTP 代理服务器和监视器

linux - 当数据由 | 分隔时,使用 uniq 实用程序从列表中获取唯一值

string - 删除模式之后的所有内容,包括模式

awk - 从 bash 输出中删除包含大量可能性的行

bash - unix下如何合并和删除文件?

linux - 编译 Fortran 示例时找不到 -lfftw