Date: Sat, 6 Jan 2018 01:44:07 -0800 From: Ultima <ultima1252@gmail.com> To: Victor Sudakov <vas@mpeks.tomsk.su> Cc: Polytropon <freebsd@edvax.de>, FreeBSD Mailing List <freebsd-questions@freebsd.org> Subject: Re: Convert .flac and .ape to mp3 Message-ID: <CANJ8om4W7JTxSYxrLjxkDjDVE8b6CxBcOwPV%2BPMQ-oQJYuNW9g@mail.gmail.com> In-Reply-To: <CANJ8om7zUoLM9HCB_5rzC9uWRaPRhCNKcS4-WsXyjZOGGKwDig@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> <20180106085528.GA33117@admin.sibptus.transneft.ru> <CANJ8om7zUoLM9HCB_5rzC9uWRaPRhCNKcS4-WsXyjZOGGKwDig@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Actually, that wont work either. I decided to go look at some of my scripts where I had to do something similar, the solution was setting IFS. IFS=$'\n' On Sat, Jan 6, 2018 at 1:34 AM, Ultima <ultima1252@gmail.com> wrote: > ah, yeah sorry I didn't understand the problem. > > find . -iname "*.ape" -exec echo \"{}\" \; > > This should be a solution. > > On Sat, Jan 6, 2018 at 12:55 AM, Victor Sudakov <vas@mpeks.tomsk.su> > wrote: > >> 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?CANJ8om4W7JTxSYxrLjxkDjDVE8b6CxBcOwPV%2BPMQ-oQJYuNW9g>