2016-07-27 42 views
1

我需要解析很多日誌文件,下面是示例結構。 我需要用一行命令(Linux/Unix)同時查看每個目錄下的debug.log文件內容。可能與awk/sed/cat等有關。 目錄的數量(1,2,3,4 ...)有所不同。我需要用名稱而不是'*'來限制目錄。如何用一行命令同時解析多個文件(Linux/Unix)

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. 

對不起,非常複雜的問題,但將不勝感激,如果你可以讓我知道方向到解決方案。

我得到的回答

需要使用「迴路」遍歷所有子目錄。

+0

我們不是在這裏爲你做所有的工作。我們可以幫助*您*編寫代碼,但不僅僅是完成所有工作。至少嘗試一些東西,展示你的嘗試,然後解釋到底是什麼妨礙了你的進步。 – kaylum

+0

對不起,但有時候我們無法爲我們的問題想到任何事情。 – Sigularity

回答

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

如果我需要限制某些目錄而不是'*'會怎麼樣?我以爲我可以把我需要用for語句中的循環風格解析的目錄名稱。謝謝。 – Sigularity

+0

你必須在一個問題中提供更具體的信息,包括簡明,可測試的樣本輸入和預期的輸出,以便我們能夠就你要問的問題提供建議。 –