10Kレコードを含むファイルがあり、それを8つのファイルに分割する必要があります。私はそれを使用しましたsplit -n l/8 -d file1 file2
。これにより、ファイルは8つに分割されますが、ファイルのデータ/記録に基づいてファイルを8つに分割する必要があります。
例えば、
case $1
in
"P"|"D") no_lines=$(wc -l $NAS_LAND/$infile | cut -d ' ' -f1 )
#no of lines in the each file after split
split_count=`expr $no_lines / 10`
if [ $split_count -ge 1 ]
then
#Input file has more than or equal to 8 lines
echo "lines_per_instance=$split_count"
split -n l/8 -d $NAS_LAND/$infile $MY_WORK/CCN_split_files/$infile
else
cp $NAS_LAND/$infile $MY_WORK/CCN_split_files/ccn.email.list.file00
fi
esac
上記のコードでは、レコードの総数をカウントしようとし、その数が1より大きい場合は分割をIn-file
実行し、ファイルを分割し、そうでなければ分割しません。split_count=expr $no_lines / 10
私のファイルに1000のレコードが含まれている場合、ファイルは8つのファイルに分割され、各ファイルには125のレコードがあります。split_count=expr $no_lines / 10
に変更すると、split_count=expr $no_lines / 100
各ファイルに同じ125のレコードを含む8つのファイルに分割されます。数値を100
(たとえば)に変更すると、1000/10=100
8つのファイルのそれぞれに100のレコードがあると予想されます。私はどこに間違って行きましたか?インファイルは8つのファイルに分けられ、8つのファイルの記録はDividerによって異なります。