[OT] shell quoting

Tony Nelson tonynelson at georgeanelson.com
Thu Sep 20 00:31:26 UTC 2007


At 12:28 AM +0400 9/20/07, Alexander Kirillov wrote:
>Hi all!
>
>I need to compare two different versions of a source tree
>excluding certain directories and print out some statistics
>on the files which have been changed, removed or added.
>
>Here comes a boiled down example of the problem I'm having.
>Let's say there are 4 files in the current directory:
>
>./aa
>./aaa
>./bb
>./bbb
>
>and I want to exclude all paths starting with ./bb
>This one is easy:
>
>find . ! -path './bb*'
>
>Now I want to make it into a generic script:
>
>DIR=.
>OPT='! -path $DIR/bb*'
>find $DIR $OPT
>
>$DIR and * within OPT are essential
>and no matter what I've tried I can't get the parameter expansion right.
>
>Any suggestions will be appreciated,

I couldn't get * to expand later either.  Backslashes didn't help.  What I
finally did was like:

    opt1='! -path $dir/bb<wild>'
    opt = `echo $opt1 | sed 's|<wild>|*|'`
    find $dir $opt
-- 
____________________________________________________________________
TonyN.:'                       <mailto:tonynelson at georgeanelson.com>
      '                              <http://www.georgeanelson.com/>




More information about the fedora-list mailing list