파일을 개행 기호로 구분하여 여러 개의 작은 파일로 분할합니다.

파일을 개행 기호로 구분하여 여러 개의 작은 파일로 분할합니다.

개행 기호로 파일을 분할하는 유틸리티가 있습니까? 예를 들어 파일에 다음 줄이 포함되어 있는 경우

aa
bbb
cccc

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

aa, bbb그리고 cccc(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"

관련 정보