Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Zsh functionality similar to Perl 'map'?
- X-seq: zsh-users 14586
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: Zsh Users <zsh-users@xxxxxxx>
- Subject: Re: Zsh functionality similar to Perl 'map'?
- Date: Fri, 20 Nov 2009 11:23:03 -0800
- In-reply-to: <alpine.LNX.2.01.0911201034070.24555@xxxxxxxxxxx>
- List-help: <mailto:zsh-users-help@zsh.org>
- List-id: Zsh Users List <zsh-users.zsh.org>
- List-post: <mailto:zsh-users@zsh.org>
- Mailing-list: contact zsh-users-help@xxxxxxx; run by ezmlm
- References: <alpine.LNX.2.01.0911201034070.24555@xxxxxxxxxxx>
On Nov 20, 11:03am, Benjamin R. Haskell wrote:
}
} Ideally, it'd end up as something like:
}
} diff -ur =({do-something1,do-something2} | filter)
} or
} diff -ur =(filter {file1,file2})
}
} ...and, yes, I know that's a *huge* stretch. And, maybe my Perl bias for
} map'ping everything is showing, but still, figured I'd ask.
Have a look at http://www.zsh.org/mla/users/2006/msg00832.html
There's a trick to replacing $(...) with =(...). If I write
setopt extendedglob
x=(a b c)
cat ${x/(#b)(*)/=(echo foo $match)}
I get
foo match
foo match
foo match
because $match is being expanded before it has been set by the (#b)
operator. It's entirely possible this is a bug. The workaround is to
single-quote the contents as in =('...'):
cat ${x/(#b)(*)/=('echo foo $match')}
foo a
foo b
foo c
I haven't delved into whether this is explainable with the normal
order-of-expansion rules. Anyway, throwing this all together in a
very non-obvious way, you can write:
diff -ur ${${(A)reply::={file1,file2}}/(#b)(*)/=('filter $match')}
Where the parts you care about manipulating are names in {file1,file2}
and of course the filter. "reply" is used as a dummy array variable
for the ::= assigment, pick any name that won't clobber something you
are interested in. Quoting of spaces or other special characters in
the file names may be a fairly unpleasant exercise.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author