파일의 한 줄을 하나의 파일로 분할하는 쉘 스크립트

데이터를 한 줄씩 다른 파일로 분할하는 쉘 스크립트



unix split 명령 에서는 임의의 행수로 파일을 분할할 수 있습니다만, 1,000행의 파일을 1행 마다 1,000 이 파일로 분할시키려고 할 수 없습니다.
그래서 파일이 몇 줄이든 한 줄씩 분할하는 스크립트를 만들었습니다.

split 명령으로 시도합니다.



testfile.dat를 한 줄로 나누고 out으로 시작하는 파일로 출력

split -line 1 testfile.dat out


오류가 발생했습니다!

devide_record.sh 사용법



split 명령의 -line 1과 같은 느낌으로 사용합니다.

devide_record.sh 입력 파일 출력 파일 이름

쉘 스크립트 소스



devide_record.sh
#!/bin/sh
#INPUTFILEを読み、1行を1ファイルにして出力するスクリプト
#コマンドライン引数1個目 読み込みファイル名
#コマンドライン引数2個目 出力ファイル名の最初の文字列
INPUTFILE=$1
OUTPUTFILE=$2
x=0
while read line;do
# x=$(($x+1))とする
x=$(($x+1))
ofn=$OUTPUTFILE"_"${x}".dat"
echo $line >${ofn}
done < $INPUTFILE

확인



입력 파일의 레코드 수 확인

wc -l 입력 파일

출력 파일의 수를 확인한다(출력 파일명의 최초의 캐릭터 라인을 out으로 한 경우)

ls out*.dat | wc -l

참고로 한 페이지



shigemk2 님의 페이지 를 참고로 했습니다<(_ _)>

어떤 시점에서 이 스크립트가 도움이 되는가?



예를 들어 설문 조사 데이터의 자유 기술 질문을 RMeCab로 형태소 해석하는 경우의 전처리

좋은 웹페이지 즐겨찾기