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