2016-07-27 1 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

간결하고 테스트 가능한 샘플 입력 및 예상 출력을 포함하여 질문에 더 구체적인 정보를 제공해야합니다. 그러면 어떻게해야하는지 묻는 메시지가 표시됩니다. –

관련 문제