Date: Sat, 6 Jan 2018 15:55:28 +0700 From: Victor Sudakov <vas@mpeks.tomsk.su> To: Ultima <ultima1252@gmail.com> Cc: Polytropon <freebsd@edvax.de>, FreeBSD Mailing List <freebsd-questions@freebsd.org> Subject: Re: Convert .flac and .ape to mp3 Message-ID: <20180106085528.GA33117@admin.sibptus.transneft.ru> In-Reply-To: <CANJ8om7LJqAG%2BX0dn1JDZn1WYJtxZtX9SAK2yQU74om7-SSQRQ@mail.gmail.com> References: <20180104163421.GA15692@admin.sibptus.transneft.ru> <20180104175156.440fa0c2.freebsd@edvax.de> <20180106063934.GA32231@admin.sibptus.transneft.ru> <CANJ8om7LJqAG%2BX0dn1JDZn1WYJtxZtX9SAK2yQU74om7-SSQRQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Ultima wrote: > > So eventually I will need to write a script to process all the *.ape > > files, probably with bchunk. Which brings the following question. If > > the file and directory names have spaces in them, a simple loop like > > this: > > > > #!/bin/sh > > for i in `find . -iname '*.ape'` > > do > > do_something $i > > done > > > > breaks on spaces. > > > > What is the sh magic to handle such filenames? > do_something "$i" Nope, these quotes make no difference, they are too late. The problem is in the "for " line, it cannot differentiate spaces _in_ filenames and _between_ filenames. Look: $ touch "this is a long file name.ape" $ ~/bin/ape2mp3.sh + find . -iname '*.ape' + echo ./this ./this + echo is is + echo a a + echo long long + echo file file + echo name.ape name.ape $ I'm sure the solution exists, it must be a very common case. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN AS43859
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180106085528.GA33117>