[prog] replacement strings
mim at miriam-english.org
Mon May 24 03:39:41 UTC 2010
Oops. I feel like an idiot. I just re-read the relevant part of geany's
manual and found that it can do tagged replacements, though with a
slightly different syntax than I normally use.
Thanks again Sam. You've opened my eyes to other things.
Sam Watkins wrote:
> On Mon, May 24, 2010 at 09:37:30AM +1000, Miriam English wrote:
>> Does anybody know of anything (editor or shell command) which can find
>> and replace patterns like the following. I don't really care about
>> particular syntax, just so long as something exists that does the job.
>> search pattern: \(foo[0-9]\)\(b[au]r\)
>> replace pattern: \2 \1
>> This searches for "foo" followed by a digit, then "bar" or "bur", then
>> replaces it with what it found, but in a different order -- in this case
>> "bar" or "bur" followed by "foo" and the digit that came after it.
> You can do this with vim, emacs, sed, perl and many other tools.
> example in vim:
> :%s/\(foo[0-9]\)\(b[au]r\)/\2 \1/gc
> The "c" at the end is for "confirm", if you don't want that you can omit the
> "c", or press "a" for "all" at the confirm prompt.
> sed has the same syntax as vim.
> sed 's/\(foo[0-9]\)\(b[au]r\)/\2 \1/g' < infile > outfile
> perl has a slightly different syntax:
> perl -pe 's/(foo[0-9])(b[au]r)/$2 $1/g' < infile > outfile
> I don't recall how to do it in emacs.
> It surprises me that you would know regexp syntax but not know how to use
> regexps in any of these tools! What do you use regexps for if not with these
If you don't have any failures then you're not trying hard enough.
- Dr. Charles Elachi, director of NASA's Jet Propulsion Laboratory
More information about the Programming