문제

텍스트가 포함 된 파일 (1에서 n까지)이 $로 분리되어 있다고 가정 해 봅시다. 최종 결과가 N 파일이기 때문에 파일을 어떻게 슬릿으로 슬릿 할 수 있습니까?

Newlines $와 함께 Text1
Text2 $ etc ... $
텍스트

나는 awk 또는 sed로 무언가를 생각하고 있지만 이미 그런 종류의 작업을 수행하는 사용 가능한 Unix 앱이 있습니까?

도움이 되었습니까?

해결책

아마도 split -p 무늬?

흠. 그것은 당신이 원하는 것이 아닐 수도 있습니다. 선을 분할하지 않고 패턴을 볼 때만 새 파일 만 시작합니다. 그리고 그것은 BSD 관련 시스템에서만 지원되는 것 같습니다.

다음과 같은 것을 사용할 수 있습니다.

awk 'BEGIN {RS = "$"} { ... }'

편집하다: 당신은 영감을 찾을 수 있습니다 { ... } 여기에 부분 :

http://www.gnu.org/manual/gawk/html_node/split-program.html

편집하다: DMCKEE의 의견에 감사하지만 csplit 또한 패턴이 발생하는 전체 선을 복사하는 것 같습니다.

다른 팁

awk '시작 {rs = "$"; ors = ""} {TextNumber ++; 인쇄 $ 0> "Text"TextNumber ".out"} 'filename

아이디어에 대해 Bill Karwin에게 감사합니다.

편집 : 각 파일의 끝에서 Newline을 인쇄하지 않으려면 ORS = ""를 추가하십시오.

내가이 권리를 읽고 있다면, 유닉스 자르다 이를 위해 명령을 사용할 수 있습니다.

cut -d $ -f 1- filename

구문이 약간 꺼져있을 수도 있지만, $ 분리 된 필드를 사용하고 있으며 끝을 통해 필드 1을 반환해야한다는 컷을 알려야합니다.

$를 피해야 할 수도 있습니다.

awk -vRS="$" '{ print $0 > "text"t++".out" }' ORS="" file

분할 명령을 사용하여 문자열을 사용하여 분할 할 수 있습니다.

그러나 CSPLIT 명령을 사용하면 정규 표현식에 기반을 둔 파일을 슬릿 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top