Globbing
Oliver Fromme
check+jw8m7u00rsbgw1jh at fromme.com
Thu Feb 14 08:49:20 PST 2008
Michael Neumann wrote:
> Rahul Siddharthan wrote:
> > For example, how do you use "find" to find all files in a directory
> > that end in ".el" and don't have a corresponding ".elc" file?
> > Answer:
> > find . -name '*.el' -print \
> > |sed 's/^/FOO=/' \
> > |sed 's/$/; if [ ! -f ${FOO}c ]; then echo $FOO; fi/' \
> > | sh
>
> Hm, why don't you use a "real" language, instead of hacking shell
> scripts. I understand that they are useful in some cases, as /bin/sh is
> cross-platform and installed by default. For anything else, take perl,
> python or ruby.
I think the point was to provide a portable solution that
would work with the basic tools on any UNIX box. I agree,
in such cases it makes sense to us an advanced language.
(On the other hand, zsh is pretty advanced, too. ;-)
> In Ruby this becomes the following:
>
> Dir['**/*.el'].reject {|f| File.exist?(f + "c")}.each {|f| puts f}
>
> And that's just a simple example. Once it gets more complex, the
> power of more advanced scripting languages pay off a lot more.
This would be the Python way to do it, just for the record:
[x for x in listdir(".") if exists(x + "c")]
Best regards
Oliver
--
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd
More information about the Kernel
mailing list