각 메시지가 #START
이라는 태그로 시작하고 #END
이라는 태그로 끝나는 많은 메시지가 포함 된 파일이 있습니다. 주 파일의 모든 메시지를 별도의 파일로 저장해야합니다. 즉 주 파일의 메시지 수가 출력 파일의 수와 같아야합니다. 출력 파일의 이름 지정 규칙에는 문제가 없지만 번호를 매겨 야합니다.유닉스 - 하나의 파일에서 개별 파일을 다른 파일로 추출하는 방법
-2
A
답변
1
AWK를 사용하여 쉽게 수행 할 수 있습니다.
BEGIN {
counter = 0;
active = 0;
current_file = "";
}
/^#START/ {
counter += 1;
current_file = "message" counter ".txt";
active = 1;
printf("") > current_file;
next;
}
/^#END/ {
active = 0;
close(current_file);
next;
}
(active) {
print($0) > current_file;
}
작은 유한 상태 시스템을 구현 한 것은 무엇입니까? 그것에는 활성과 비활성 두 개의 상태가 있습니다. 비활성화에서 활성에서 #SART
으로 읽고 #END
에서 다시 전환합니다. 활성 상태에서는 읽는 각 줄을 current_file
이라는 파일로 리디렉션합니다. 비활성에서 각 전환시부터 활성까지 카운터 counter
(이는 current_file
생성에 사용됨)이 증가합니다.
$ awk -f extract.awk input.log
를 통해 파일 inputs-log
에 (extract.awk
이름)이 스크립트를 실행할 수 있습니다
:
#START
This is the first message.
#END
This is not a message at all.
The second message is empty.
#START
#END
#START
This is the third message.
It is two lines long.
#END
#START
This is the fourth message.
#END
그것은 사이의 라인을 포함하는 파일 message1.txt
message4.txt
을 생성하는 것을 파일 내의 대응하는 태그
AWK에 대해 더 자세히 알고 싶다면 The GNU Awk User’s Guide의 첫 번째 장을 읽는 것이 좋습니다.
관련 문제
- 1. 유닉스 - 파일에서 패턴을 찾아 다른 파일로 복사
- 2. 하나의 파일에서 다른 파일로 데이터 복사
- 3. 병합 된 파일에서 파일을 추출하는 방법
- 4. 파일에서 정보를 추출하는 방법
- 5. 하나의 파일을 다른 파일로 복사
- 6. 개별 파일을 개별 파일로 범위 지정
- 7. 하나의 파이썬 파일에서 다른 파이썬 파일로 데이터를 반환하는 방법
- 8. 하나의 실행 파일에서 다른 실행 파일로 리소스를 복사하는 방법
- 9. 하나의 SWF 파일에서 다른 SWF 파일로 이동
- 10. 하나의 .js 파일에서 다른 .js 파일로 문자열을 전달하는 방법
- 11. chm 파일에서 hhp 파일을 추출하는 방법
- 12. 여러 개의 CSV 파일에서 단일 행을 새 파일로 추출하는 방법
- 13. msg 파일에서 첨부 파일을 추출하는 방법
- 14. jar 파일에서 zip 파일을 추출하는 방법
- 15. .apk 파일에서 Java 파일을 추출하는 방법
- 16. 하나의 PHP 파일에서 다른 PHP 파일로 객체를 옮기는 방법
- 17. 하나의 PHP 파일에서 다른 PHP 파일로 변수 값을 업데이트하는 방법
- 18. 하나의 구성 파일에서 다른 구성 파일로 connectionString을 추가하는 방법
- 19. 하나의 swf 파일에서 다른 swf 파일로 객체를 검색하는 방법
- 20. 유닉스 프린터 파일로 출력
- 21. 한 파일에서 다른 파일로 파일을 넘겨받는 경우
- 22. 하나의 XML 파일을 다른 XML 파일로 가져 오는 방법
- 23. vbscript의 파일에서 정보를 추출하는 방법
- 24. 하나의 XML 파일에서 요소를 추출하여 다른 XML 파일로 채우기
- 25. tar 사이트 백업에서 하나의 파일을 추출하는 방법
- 26. 다른 파일을 기반으로 한 파일에서 다른 파일로 행 복사
- 27. 하나의 .fig 파일을 다른 파일로 전송
- 28. 구조가 다른 여러 테이블을 하나의 플랫 파일로 추출하는 방법은 무엇입니까?
- 29. VIM : 하나의 파일에서 검색하여 다른 파일에서 검색
- 30. 한 파일에서 다른 파일로 mtime을 전송하는 방법
당신은 무엇을 시도 했습니까? – whoan
나는 sed와 awk 명령에 익숙하지 않다. 정말로 어떻게 진행해야할지 모른다. –
나는 당신이 sed와 awk에서 읽어야한다고 말하고 싶다. 이 사이트는 일반적인 교육 사이트가 아닌 특정 질문에 대한 도움을 제공하기위한 것입니다. –