On 6/23/11 9:59 AM, Steven W. Orr wrote: > I may be wrong, but I think there's a way to do what I want without using a > regex. > > I have a file called foo-1.2-3.tar.gz > I need to set a variable equal to > foo-1.2-i386-x86_64-3.tar.gz > > Is there a way to do this without parsing my brains out? I am facile with > the variable operations like # ## % %% and /, but what I really want to do > is to say something like > > bar=${foo/-([1-9]).tar.gz/-i386-x86_64-\1.tar.gz} > > where the \1 is some sort of thing that I can use to refer to a backref. > Does this exist in bash or do I just do it with a regex?
Bash pattern substitutions are simple strings, not regular expressions. They do not have backreferencing. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/