파일 분할을 위한 표준 명령이 있습니다 split
.
words
예를 들어, 파일을 10000줄 단위로 분할하려면 다음을 사용할 수 있습니다.
split -dl 10000 words wrd
wrd.01
등 의 형식으로 여러 파일을 생성합니다 wrd.02
.
wtd.01.txt
하지만 이러한 파일에 특정 확장자가 지정되기를 원합니다. 예를 들어, 파일 을 가져오고 싶습니다 wrd.02.txt
.
그것을 할 수 있는 방법이 있나요?
답변1
더 gnu split
많은최근의버전( ≥ 8.16
), --additional-suffix
스위치를 사용하여 생성된 확장을 제어할 수 있습니다. 에서 man split
:
--additional-suffix=SUFFIX
append an additional SUFFIX to file names.
따라서 이 옵션을 사용하는 경우:
split -dl 10000 --additional-suffix=.txt words wrd
생성된 스니펫은 자동으로 다음으로 끝납니다 .txt
.
wrd00.txt
wrd01.txt
.........
답변2
이러한 작업은 셸을 사용하여 가장 잘 관리됩니다. 분할을 사용한 다음 간단한 루프를 작성하여 파일 이름을 바꿉니다. 예를 들어
for file in wrd.*
do
mv "$file" "$file.txt"
done
wrd.01, wrd.02 등의 파일 이름이 모두 .txt 확장자를 갖도록 변경됩니다.
답변3
를 사용하지 않지만 split
나중에 쉽게 이름을 바꿀 수 있습니다. 또는 다음에서 이 작업을 수행할 수 있습니다 awk
.
awk '{filename = "wrd." int((NR-1)/10000) ".txt"; print >> filename}' inputfile