pesubst — perl-regexp stream substitution
Contents
Description
pesubst can substitute strings in streams and files, and does so by using the Perl engine. It obsoletes
sed(1) for simple substitution tasks.
Examples
Change all occurrences of foo (case-insensitive) to bar:
pesubst -s foo -d bar -ms myfile
Change all Shell-style comments into C++ ones:
pesubst -s '^#' -d // -mm myfile
Using both the "m" and "i" flags:
pesubst -s '^#INCLUDE\s+' -d '#include ' -mmi myfile.c
Modifiers
e Evaluate the right side as an expression.
g Replace globally, i.e., all occurrences. Thisisalwaysenabledinpesubst.i Do case-insensitive pattern matching.
m Treat string as multiple lines. That is, change "^" and "$" from matching the start or end of the
string to matching the start or end of any line anywhere within the string.
o Compile pattern only once.
s Treat string as single line. That is, change "." to match any character whatsoever, even a
newline, which normally it would not match.
x Extend your pattern's legibility by permitting whitespace and comments.
Name
pesubst — perl-regexp stream substitution
Options
-f Fill the replacement string with NULs to bring it up to the size of the original string.
-spattern
Source pattern to search for in files. This can be any valid Perl regular expression. Files are
slurped in as a whole, so matching across newlines should be no problem (with the -ms flag).
-dpattern
Destination (replacement) string. This can be any valid string Perl accepts. For details see the
perlre(1) manpage.
-mmodifiers
A string of modifiers to apply to the regex. See below.
See Also
hxtools(7), pegrep(1) hxtools 2008-02-06 pesubst(1)
Syntax
pesubst [-f] [-spattern] [-dpattern] [-mmodifiers] file...
