I want to do a substitution based on a wildcard. For example, change all “tenure” to “disposition” only if the word “tenure” comes after an ‘=’ sign. Basically a regex that would match this =.*tenure
The sed command that I have so for this is:
sed 's/=.*tenure/=.*disposition/g' file.txt
However, if I pass this to a file containing:
blah blah blah = change "tenure" to "disposition"
I get
blah blah blah =.*disposition" to "disposition"
instead of:
blah blah blah = change "disposition" to "disposition"
How do I do the substitution such that the wildcard in the regex won’t be part of the destination file?
You need to use a capturing group to capture the text that appears between your equals sign and “tenure”.
So
Note the use of
\1to reference and use the group you captured.So in
we get
See Regex grouping.