$ 으로 구분 된 텍스트 (1에서 N까지)가 포함 된 파일이 있다고 가정 해 봅시다. 최종 결과가 N 파일이되도록 파일을 자르는 방법은 무엇입니까? 줄 바꿈과토큰에 파일 기반을 어떻게 분할합니까?
는텍스트 1 $
텍스트 2 $ 등 ... $
textN
내가 AWK 뭔가를 생각하거나 나오지도하지만, 이미 그런 종류의 수행 가능한 유닉스 응용 프로그램이있어 태스크?
$ 으로 구분 된 텍스트 (1에서 N까지)가 포함 된 파일이 있다고 가정 해 봅시다. 최종 결과가 N 파일이되도록 파일을 자르는 방법은 무엇입니까? 줄 바꿈과토큰에 파일 기반을 어떻게 분할합니까?
는텍스트 1 $
텍스트 2 $ 등 ... $
textN
내가 AWK 뭔가를 생각하거나 나오지도하지만, 이미 그런 종류의 수행 가능한 유닉스 응용 프로그램이있어 태스크?
split -p
패턴?
흠. 그건 네가 원하는 것과 정확히 같지 않을 수도있다. 그것은 라인을 분할하지 않고 패턴을 볼 때만 새로운 파일을 시작합니다. 그리고 그것은 BSD 관련 시스템에서만 지원되는 것으로 보인다.
awk 'BEGIN {RS = "$"} { ... }'
편집 :
당신은 같은 것을 사용할 수 당신은 여기 { ... }
부분에 대한 영감을 찾을 수 있습니다 : 편집 http://www.gnu.org/manual/gawk/html_node/Split-Program.html
: 감사 dmckee에서 의견을 , 그러나 csplit
또한 패턴이 발생하는 전체 라인을 복사하는 것처럼 보입니다.
awk 'BEGIN {RS = "$"; ORS = ""} {textNumber ++; print $ 0> "text"textNumber ".out"} 'fileName
Bill Karwin에게 감사드립니다.
편집 : ORS = ""를 추가하여 각 파일 끝에 줄 바꿈을 인쇄하지 마십시오.
awk -vRS="$" '{ print $0 > "text"t++".out" }' ORS="" file
split 명령을 사용하면 문자열을 사용하여 분할 할 수 있습니다.
하지만 csplit 명령을 사용하면 정규식을 기반으로하는 파일을 줄일 수 있습니다.
흠, 내'split'은'-p' 옵션을 가지고 있지 않습니다 - OS는 무엇입니까? –
Mac OS 있습니다. 또한 "csplit"을 고려하십시오. – dmckee
저는 BSD UNIX를 기반으로하는 Mac OS X에 있습니다. http://www.freebsd.org/cgi/man.cgi?query=split을 참조하십시오. –