2016-07-27 11 views
1

解析する必要のあるログファイルがたくさんあります。 1行のコマンド(Linux/Unix)で同時に各ディレクトリ下のdebug.logファイルの内容を表示する必要があります。おそらくawk/sed/catなどで。 ディレクトリ(1,2,3,4 ...)の数はさまざまです。私は '*'の代わりに名前でディレクトリを制限する必要があります。1行のコマンドで複数のファイルを同時に解析する方法(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

簡潔でテスト可能なサンプル入力と期待される出力を含む、より具体的な情報を質問に提供する必要があります。 –

関連する問題