I have a file with 10K records and I need to divide it into 8 files.
I used split -n l/8 -d file1 file2
. This will split the file into 8 files, but I need to divide the file into 8 depending on the data/records in it.
For example,
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
In the above code I am trying to count total number of records from In-file
and doing a division split_count=expr $no_lines / 10
if it is greater than 1, split the file else do not split.
Now if my In-file contains 1000 records then file split into 8 files with 125 records each.
if I change split_count=expr $no_lines / 10
to split_count=expr $no_lines / 100
, it will split into 8 files with the same 125 records in each file.
I am expecting when I changed the number to 100
(say1000/10=100
) i am expecting 100 records in each of 8 files.
where did I went wrong.
The In-file must divide into 8 files, but records in the 8 files must vary by Dividor.