Scroll to navigation

pesubst(1) hxtools pesubst(1)

Name

pesubst — perl-regexp stream substitution

Syntax

pesubst [-f] [-s pattern] [-d pattern] [-m modifiers] file...

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.

Options

Fill the replacement string with NULs to bring it up to the size of the original string.
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).
Destination (replacement) string. This can be any valid string Perl accepts. For details see the perlre(1) manpage.
A string of modifiers to apply to the regex. See below.

Modifiers

Evaluate the right side as an expression.
Replace globally, i.e., all occurrences. This is always enabled in pesubst.
Do case-insensitive pattern matching.
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.
Compile pattern only once.
Treat string as single line. That is, change "." to match any character whatsoever, even a newline, which normally it would not match.
Extend your pattern's legibility by permitting whitespace and comments.

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

See also

hxtools(7), pegrep(1)

2008-02-06 hxtools