On Tue, Jun 21, 2005 at 09:57:07PM -0400, kamaraju kusumanchi wrote:
> I have a large text file (humongous.txt) with the following structure
>
>
> date 1-1-2005
> line1
> line2
> date 1-2-2005
> line3
> line4
> date 1-3-2005
> line5
> line6
> line7
> line8
> .....
>
> Is there any tool which will split the above file and give me three
> smaller files 1-1-2005.txt, 1-2-2005.txt, 1-3-2005.txt etc., where
>
> 1-1-2005.txt will be
>
> date 1-1-2005
> line1
> line2
>
> 1-2-2005.txt will be
Hi raj,
perl would be faster than bash, but here is a bash script.
-------------------------------------------
SOURCE=$1
F=""
cat $1 | while read line; do
TEST=$(echo $line | grep ".*-.*-.*")
if [ "$TEST" ]; then
echo $line
F=$(echo $line|awk '{print $2.".txt"}')
else
if [ -e "$F" ]; then
echo "$line" >> $F
else
echo "$line" > $F
fi
fi
done
--------------------------------------------------------
Cheers,
kev
--
counter.li.org #238656 -- goto counter.li.org and be counted!
`$' $'
$ $ _
,d$$$g$ ,d$$$b. $,d$$$b`$' g$$$$$b $,d$$b
,$P' `$ ,$P' `Y$ $$' `$ $ "' `$ $$' `$
$$ $ $$ggggg$ $ $ $ ,$P"" $ $ $
`$g. ,$$ `$$._ _. $ _,g$P $ `$b. ,$$ $ $
`Y$$P'$. `Y$$$$P $$$P"' ,$. `Y$$P'$ $. ,$.
Attachment:
signature.asc
Description: Digital signature