서로 다른 파일의 태그를 기반으로 줄을 제거하고 단일 파일로 병합

서로 다른 파일의 태그를 기반으로 줄을 제거하고 단일 파일로 병합

다음 시나리오를 만족시키는 방식으로 Unix 스크립트를 개발해야 합니다.

1.txt, 2.txt, 3.txt라는 3개의 텍스트 파일이 있습니다.

해당 파일의 데이터는 다음과 같습니다.

HDR|1|2|3|||||||||||||||||||||||
DTL|||||||||||||||||||||||||||||||
DTL|||||||||||||||||||||||||||||||
TLR|||||||||||||||||||||||||||||||

첫 번째 파일( 1.txt)의 경우 TLR 태그를 기반으로 줄을 삭제해야 합니다. 두 번째 파일( 2.txt)의 경우 TLR 및 HDR을 기반으로 줄을 제거해야 합니다. 세 번째 파일( 3.txt)의 경우 HDR 태그를 기반으로 줄을 제거해야 합니다.

위와 같은 작업을 한 후 이 3개의 파일 데이터를 하나의 파일에 넣어야 합니다.

여기서는 병합할 파일 수를 확신할 수 없습니다. 위의 3개 텍스트 파일과 같이 파일 이름을 직접 하드코딩할 수는 없습니다.

이 스크립트를 어떻게 구현할 수 있나요?

답변1

이 작업은 다음을 사용하여 간단히 수행할 수 있습니다.답변~에서마지막 관련 질문좀 남았어출력 리디렉션:

grep -vE "TLR" 1.txt > merged.txt
grep -vE "TLR|HDR" 2.txt >> merged.txt
grep -vE "HDR" 3.txt >> merged.txt

서브셸을 사용하여 다음 명령을 결합할 수도 있습니다.

( grep -vE "TLR" 1.txt ;  grep -vE "TLR|HDR" 2.txt ; grep -vE "HDR" 3.txt  )> merged.txt

관련 정보