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

时间:2016-07-27 03:43:17

标签: 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.

对于非常复杂的问题感到抱歉,如果您能让我知道解决方案的方向,我们将不胜感激。

我得到了答案

需要使用'循环'来遍历所有子目录。

1 个答案:

答案 0 :(得分:1)

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