[ILUG] Re: script handling filenames with spaces
Pete McEvoy
pete at yerma.org
Sat Aug 18 23:22:25 IST 2007
Thanks to Ian and Marcus replying, I got it going with:
for i in $(ls $FOLDERS)
do
find $FOLDERS$i/mail/ -type f |while read ; do mb2md -s "$REPLY" -d
"$MAILDIR$i/.$(basename "$REPLY")" ;
done
done
Beer time!
Cheers
--
Pete
On Sat, Aug 18, 2007 at 10:05:07PM +0100, Marcus Furlong wrote:
> On Saturday 18 August 2007 19:18 in <20070818181836.GA7347 at yerma.org>, Pete
> McEvoy wrote:
>
> > Hi.
> > Could anyone advise on the below script:
> >
> > #!/bin/sh -x
> >
> > FOLDERS=/tmp/folders/
> > MAILDIR=/tmp/maildir/
> >
> > for i in `ls $FOLDERS`
> > do
> > for j in "`find $FOLDERS$i/mail/ -type f`"
> > do
> > mb2md -s "$j" -d "$MAILDIR$i/.$(basename $j)"
> > done
> > done
> >
> > The contents of /tmp/folders/$i/mail/ are mailboxes, which can have
> > spaces and perhaps odd characters in the name, as such I need to ensure
> > $j is quoted before being passed to mb2md.
> > Niall on irc recommended the use of print0 and xargs -0 , but at this
> > late stage of the day I'm unable to grok how I would work them into my
> > script.
> >
> > Any help would be appreciated.
> >
> > Thanks
> >
>
> Maybe try setting IFS to be just <newline> instead of <space>, <tab> and
> <newline>? Add this to the start of your script.
>
> IFS="
> "
>
> That should handle the spaces anyway, not sure how to best go about odd
> characters.
>
> Marcus.
>
> --
> Irish Linux Users' Group mailing list
> About this list : http://mail.linux.ie/mailman/listinfo/ilug
> Who we are : http://www.linux.ie/
> Where we are : http://www.linux.ie/map/
More information about the ILUG
mailing list