파일을 줄 바꿈으로 구분된 여러 개의 작은 파일로 분할합니다.

파일을 줄 바꿈으로 구분된 여러 개의 작은 파일로 분할합니다.

줄바꿈으로 파일을 분할할 수 있는 유틸리티가 있나요? 예를 들어 파일에 다음 줄이 포함되어 있는 경우

aa
bbb
cccc

3개의 파일로 분할하려는 경우 원하는 출력은 다음과 같습니다.

aa, bbbcccc(3개의 다른 파일)

명령 을 확인했는데 split원하는 크기가 아닌 파일 크기로만 파일을 자릅니다.

유틸리티를 직접 작성하지 않는 경우 사용할 수 있는 표준 도구가 있습니까?

답변1

제가 놓친 것이 없다면 split스위치를 사용하면 행별로 분할됩니다 -l.

   -l, --lines=NUMBER
          put NUMBER lines per output file

그래서

split -l 1 inputfile

당신이 원하는 것을해야합니다.

답변2

awk '{print > $0".txt" }'  inputfile

입력 파일의 각 고유 라인에 대해 파일이 생성되며, .txt해당 라인의 내용에 따라 이름이 확장명으로 지정됩니다. 그러나 동시에 열려 있는 파일의 한계에 도달하면 일부 awk구현이 실패할 수 있다는 점에 유의하세요.

또는

awk '{f = "output_file." NR; print $0 > f; close(f)}' inputfile

출력 파일에 번호를 매깁니다.

답변3

A=0
while IFS= read -r LINE ; do
  printf '%s\n' "$LINE" > newfile$A
  (( A++ ))
done < "$INPUTFILE"

관련 정보