텍스트 파일에서 줄을 추출하면 파일을 구문 분석하여 패턴이 식별됩니다.

텍스트 파일에서 줄을 추출하면 파일을 구문 분석하여 패턴이 식별됩니다.

다음 시나리오에 따라 txt 파일에서 다른 파일로 줄을 추출해야 합니다.

일치시킬 첫 번째 패턴은 항상 단어로 시작하는 줄이 되고 identifier, 두 번째 패턴은 다음으로 시작하는 첫 번째 줄이 됩니다 000.

아래 예에서는

000: thislineneedstobeextracted  

첫 번째 파일에 출력을 쓴 후 단어로 시작하는 줄 identifier과 : 로 다시 시작하는 줄을 추출하기 위해 이동합니다 000. 그러나 이번에는 파일에서 두 번째로 고유한 항목이 발견된 경우,

000: alsothislineneedstobeextracted  

출력은 두 번째 파일 등에 기록됩니다.

샘플 입력

identifier 767  
linetobeignored  
anotherlinetobeignored  
000: thislineneedstobeextracted  
000: alsothislineneedstobeextracted  
blankline  
identifier 7686    
linetobeignored  
anotherlinetobeignored  
000: thislineneedstobeextracted  
000: alsothislineneedstobeextracted  
000: ayetanotherlineneedstobeextracted  

샘플 출력 파일1.txt:

000: thislineneedstobeextracted  
identifier 767  
identifier 7686    

샘플 출력 file2.txt:

000: alsothislineneedstobeextracted  
identifier 767  
identifier 7686    

답변1

시도해 보세요

awk '
    /^id/{
        if(line[1]){
            for(n in line)print line[n],i,$0 >> "file"n".txt"
            delete(line)
            }
        c=0
        i=$0
        }
    /^000:/{
        line[++c]=$0
        }
    END{
        if(line[1]){
            for(n in line)print line[n],i,$0 >> "file"n".txt"
        }
    ' OFS=\\n txt.file

관련 정보