271 lines
6.2 KiB
Groff
271 lines
6.2 KiB
Groff
.TH SED 1 "June 2026" "Sed++ 1.0.0" "User Commands"
|
|
.SH NAME
|
|
sed \- stream editor for filtering and transforming text
|
|
.SH SYNOPSIS
|
|
.B sed
|
|
.RI [ OPTION ]...
|
|
.RI { script-only-if-no-other-script }
|
|
.RI [ input-file ]...
|
|
.SH DESCRIPTION
|
|
.B sed
|
|
reads text from the named input files, or standard input if no files are named,
|
|
and applies a compiled editing script to each input record.
|
|
By default each pattern space is printed after the script finishes for that
|
|
cycle.
|
|
.PP
|
|
Sed++ is a native C++ implementation intended to behave like GNU
|
|
.BR sed
|
|
for ordinary command-line use and for the GNU sed 4.10 behavioral test suite.
|
|
It supports standard sed pattern space, hold space, addresses, address ranges,
|
|
substitutions, transliteration, branching, file reads and writes, shell
|
|
execution commands, NUL-delimited input, and in-place editing.
|
|
.SH OPTIONS
|
|
.TP
|
|
.BR \-n ", " \-\-quiet ", " \-\-silent
|
|
Suppress automatic printing of pattern space. Output is produced only by
|
|
commands such as
|
|
.BR p ,
|
|
.BR P ,
|
|
.BR l ,
|
|
.BR a ,
|
|
.BR i ,
|
|
.BR c ,
|
|
.BR r ,
|
|
.BR R ,
|
|
.BR w ,
|
|
and
|
|
.BR = .
|
|
.TP
|
|
.BI \-e " script"
|
|
.TQ
|
|
.BI \-\-expression= script
|
|
Add
|
|
.I script
|
|
to the commands to be executed. Multiple
|
|
.B \-e
|
|
and
|
|
.B \-f
|
|
options are evaluated in command-line order.
|
|
.TP
|
|
.BI \-f " script-file"
|
|
.TQ
|
|
.BI \-\-file= script-file
|
|
Add commands read from
|
|
.I script-file
|
|
to the program. A file name of
|
|
.B \-
|
|
reads the script from standard input.
|
|
.TP
|
|
.BR \-E ", " \-r ", " \-\-regexp-extended
|
|
Use extended regular expressions.
|
|
.TP
|
|
.BI \-i [ suffix ]
|
|
.TQ
|
|
.BI \-\-in-place[= suffix ]
|
|
Edit files in place. If
|
|
.I suffix
|
|
is supplied, create a backup before replacing the file. If the suffix contains
|
|
.BR * ,
|
|
each star is replaced by the edited file name; otherwise the suffix is appended
|
|
to the file name.
|
|
.TP
|
|
.BI \-l " N"
|
|
Set the default line-wrap width used by the
|
|
.B l
|
|
command. The attached form
|
|
.BI \-l N
|
|
is also accepted.
|
|
.TP
|
|
.BR \-z ", " \-\-null-data
|
|
Use NUL bytes rather than newlines as input record separators.
|
|
.TP
|
|
.BR \-s ", " \-\-separate
|
|
Treat input files separately for line numbering and the
|
|
.B $
|
|
address.
|
|
.TP
|
|
.BR \-u ", " \-\-unbuffered
|
|
Enable unbuffered-style behavior for supported streaming cases.
|
|
.TP
|
|
.BR \-b
|
|
Accepted for GNU sed compatibility. On Unix streams are already binary, so this
|
|
option has no effect.
|
|
.TP
|
|
.BR \-\-follow-symlinks
|
|
When editing in place, follow symlinks and edit the final target rather than
|
|
replacing the symlink itself.
|
|
.TP
|
|
.BR \-\-sandbox
|
|
Request GNU-compatible sandbox behavior. Shell execution through
|
|
.B e
|
|
commands and substitution
|
|
.B e
|
|
flags is disabled at runtime; selected filesystem-access diagnostics are
|
|
reported for GNU sed compatibility.
|
|
.TP
|
|
.BR \-\-posix
|
|
Enable stricter POSIX behavior and reject selected GNU extensions.
|
|
.TP
|
|
.BR \-\-debug
|
|
Print a minimal compiled-program debug view before execution.
|
|
.TP
|
|
.BR \-\-help
|
|
Print a short usage summary and exit.
|
|
.TP
|
|
.BR \-\-version
|
|
Print the Sed++ version and exit.
|
|
.SH SCRIPT LANGUAGE
|
|
A sed script is a sequence of commands. A command has the form:
|
|
.PP
|
|
.RS
|
|
.IR [ address [ , address ]] [ ! ] command [ arguments ]
|
|
.RE
|
|
.PP
|
|
Addresses select the input cycles where a command applies. Supported addresses
|
|
include numeric line addresses,
|
|
.B $
|
|
for the last input record, regular-expression addresses such as
|
|
.BI / regexp / ,
|
|
GNU periodic addresses such as
|
|
.IR first ~ step ,
|
|
and GNU range endings
|
|
.BI + N
|
|
and
|
|
.BI ~ N .
|
|
The
|
|
.B !
|
|
modifier negates address selection.
|
|
.PP
|
|
Regular expressions use POSIX basic syntax unless
|
|
.B \-E
|
|
or
|
|
.B \-r
|
|
is supplied. Empty regular expressions reuse the most recently compiled
|
|
non-empty regular expression.
|
|
.SH COMMANDS
|
|
.TP
|
|
.BI s/ regexp / replacement / flags
|
|
Replace text matched by
|
|
.I regexp
|
|
with
|
|
.IR replacement .
|
|
Supported flags include
|
|
.B g
|
|
for global replacement,
|
|
.B p
|
|
to print after a successful substitution,
|
|
.B e
|
|
to execute the result as a shell command,
|
|
.B i
|
|
or
|
|
.B I
|
|
for case-insensitive matching,
|
|
.B m
|
|
or
|
|
.B M
|
|
for multiline matching, numeric occurrence selection, and
|
|
.BI w " file"
|
|
to write successful replacements.
|
|
.TP
|
|
.BI y/ source / dest /
|
|
Transliterate characters from
|
|
.I source
|
|
to corresponding characters in
|
|
.IR dest .
|
|
.TP
|
|
.BR p ", " P
|
|
Print the whole pattern space, or only the portion through the first embedded
|
|
newline.
|
|
.TP
|
|
.BR d ", " D
|
|
Delete the pattern space and start the next cycle, or delete through the first
|
|
embedded newline and restart the script with the remaining pattern space.
|
|
.TP
|
|
.BR n ", " N
|
|
Read the next input record, replacing or appending to pattern space.
|
|
.TP
|
|
.BR h ", " H ", " g ", " G ", " x
|
|
Copy, append, restore, append from, or exchange the hold space and pattern
|
|
space.
|
|
.TP
|
|
.BR a ", " i ", " c
|
|
Append, insert, or replace text.
|
|
.TP
|
|
.BI r " file"
|
|
.TQ
|
|
.BI R " file"
|
|
Append a whole file, or append the next line from a file.
|
|
.TP
|
|
.BI w " file"
|
|
.TQ
|
|
.BI W " file"
|
|
Write the whole pattern space, or only the portion through the first embedded
|
|
newline, to a file.
|
|
.TP
|
|
.BI e " command"
|
|
Execute a shell command. With no command argument, execute the current pattern
|
|
space and replace it with the command output.
|
|
.TP
|
|
.BR b ", " t ", " T ", " : label
|
|
Branch unconditionally, branch after a successful substitution, branch after no
|
|
successful substitution, or define a label.
|
|
.TP
|
|
.BR q ", " Q
|
|
Quit, optionally with an exit status. The
|
|
.B q
|
|
command prints the current pattern space first unless automatic printing is
|
|
suppressed;
|
|
.B Q
|
|
quits without printing it.
|
|
.TP
|
|
.BR l
|
|
List pattern space with escaped non-printing characters.
|
|
.TP
|
|
.BR = ", " F ", " z
|
|
Print the current line number, print the current file name, or clear pattern
|
|
space.
|
|
.TP
|
|
.BR { ", " }
|
|
Group commands.
|
|
.SH ENVIRONMENT
|
|
.TP
|
|
.B POSIXLY_CORRECT
|
|
Enables POSIX runtime behavior.
|
|
.TP
|
|
.B COLS
|
|
Used as the default wrap width for the
|
|
.B l
|
|
command when no line length is specified.
|
|
.SH EXIT STATUS
|
|
.TP
|
|
.B 0
|
|
Successful execution.
|
|
.TP
|
|
.B 1
|
|
Script compilation or runtime command failure.
|
|
.TP
|
|
.B 4
|
|
Usage, input, output, or in-place editing failure.
|
|
.SH EXAMPLES
|
|
.TP
|
|
Print only lines 10 through 20:
|
|
.EX
|
|
sed -n '10,20p' file.txt
|
|
.EE
|
|
.TP
|
|
Replace all occurrences of a word in place, keeping backups:
|
|
.EX
|
|
sed -i.bak 's/old/new/g' file.txt
|
|
.EE
|
|
.TP
|
|
Use NUL-delimited records:
|
|
.EX
|
|
find . -print0 | sed -z 's#^./##'
|
|
.EE
|
|
.SH SEE ALSO
|
|
.BR awk (1),
|
|
.BR grep (1),
|
|
.BR regex (7)
|
|
.SH AUTHORS
|
|
Sed++ is Licensed under the MIT License and created by SFG545.
|