
다음 시나리오에 따라 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