*BSD News Article 21938


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!osuunx.ucc.okstate.edu!moe.ksu.ksu.edu!crcnis1.unl.edu!wupost!howland.reston.ans.net!pipex!uunet!destroyer!news.itd.umich.edu!honey
From: honey@citi.umich.edu (Peter Honeyman)
Newsgroups: comp.unix.bsd
Subject: Re: splitting a one line file
Date: 6 Oct 1993 02:20:12 GMT
Organization: Center for Information Technology Integration, Univ of Michigan
Lines: 18
Distribution: world
Message-ID: <28ta0s$bma@terminator.rs.itd.umich.edu>
References: <28si9m$ed6@male.EBay.Sun.COM>
Reply-To: honey@citi.umich.edu
NNTP-Posting-Host: 141.211.170.43

give this a try.

	peter

#!/bin/sh
case $# in
2)      bs=1 count=$2;;
1)      bs=4 count=16;;
*)      echo "usage: msplit infile [outsize in kbytes, default is 64]" 1>&2
        exit 1;;
esac
unit=`expr $bs '*' $count '*' 1024` rem=`ls -l $1|awk '{printf $4}'` num=100 skip=0
while [ $rem -gt 0 ]; do
        dd bs=${bs}k count=$count skip=$skip if=$1 of=$1.$num
        rem=`expr $rem - $unit`
        skip=`expr $skip + $count`
        num=`expr $num + 1`
done