pesubst — perl-regexp stream substitution
pesubst [
-f] [
-s pattern] [
-d pattern]
[
-m modifiers]
file...
pesubst can substitute strings in streams and files, and does so by using the
Perl engine. It obsoletes
sed(1) for simple substitution tasks.
- -f
- Fill the replacement string with NULs to bring it up to the
size of the original string.
-
-s pattern
- 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).
-
-d pattern
- Destination (replacement) string. This can be any valid
string Perl accepts. For details see the perlre(1) manpage.
-
-m modifiers
- A string of modifiers to apply to the regex. See
below.
- e
- Evaluate the right side as an expression.
- g
- Replace globally, i.e., all occurrences. This is always
enabled in pesubst.
- 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.
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
hxtools(7),
pegrep(1)