[SGVLUG] bash "for" with spaces

Christopher Smith x at xman.org
Mon Apr 19 21:55:47 PDT 2010


-exec is very flexible. Where possible use the -exec {} + syntax to minimize forking (at which point you are very close to what you get with xargs).

--Chris

On Apr 19, 2010, at 9:45 PM, "Matt Campbell" <dvdmatt at gmail.com> wrote:

> There is a nice argument to find that I use all the time...
> 
> find /media -name '*.gif' -exec makeThumb \{\} \;
> 
> another example:
> 
> find . -type f -exec mv \{\} \{\}.bk \;
> 
> Matt
> 
>> -----Original Message-----
>> From: sgvlug-bounces at sgvlug.net [mailto:sgvlug-bounces at sgvlug.net] On
>> Behalf Of Christopher Smith
>> Sent: Monday, April 19, 2010 9:34 PM
>> To: SGVLUG Discussion List.
>> Cc: SGVLUG Discussion List.
>> Subject: Re: [SGVLUG] bash "for" with spaces
>> 
>> That's the point where I want to think about engaging perl, but that
>> said, in the particular case I'd do:
>> 
>> find . -type f -maxdepth 1 -print0 | grep -z -Z -l bar | xargs -0 foo
>> 
>> --Chris
>> 
>> On Apr 19, 2010, at 9:16 PM, "John E. Kreznar" <jek at ininx.com> wrote:
>> 
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>> 
>>>>> foo "$f"
>>> 
>>>> Where possible (and it is most often possible), the "find -print0 |
>>>> xargs -0" idiom works well too.
>>> 
>>> Very nice.  Thanks!  The cases where things seem to get baroque may
>> be
>>> when the list is the result of a computation.  Example:
>>> 
>>>  for f in $(grep -l bar *) ; do foo $f ; done
>>> 
>>> where again, file names may contain blanks.  As I recall, I've been
>>> driven to fiddling with the IFS shell parameter.  Very messy.
>>> 
>>> - --
>>> John E. Kreznar jek at ininx.com 9F1148454619A5F08550
>> 705961A47CC541AFEF13
>>> 
>>> -----BEGIN PGP SIGNATURE-----
>>> Version: GnuPG v1.4.10 (GNU/Linux)
>>> Comment: Processed by Mailcrypt 3.5.8+
>> <http://mailcrypt.sourceforge.net/>
>>> 
>>> iEYEARECAAYFAkvNKkkACgkQYaR8xUGv7xPt7wCePawIUHq+HwlDgezTA6z+p9Ou
>>> gpcAn0qITqGRcZdhrOD8gL5teNJoEwv3
>>> =6X47
>>> -----END PGP SIGNATURE-----
>>> 
> 


More information about the SGVLUG mailing list