파일을 줄별로 분할하고 결과 파일 확장자를 제어합니다.

파일을 줄별로 분할하고 결과 파일 확장자를 제어합니다.

파일 분할을 위한 표준 명령이 있습니다 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

관련 정보