other sections
SED(1plan9) | SED(1plan9) |
NAME¶
sed - stream editorSYNOPSIS¶
sed [ -gln ] [ -e script ] [ -f sfile ] [ file ... ]DESCRIPTION¶
Sed copies the named files (standard input default) to the standard output, edited according to a script of commands. The -f option causes the script to be taken from file sfile; these options accumulate. If there is just one -e option and no -f's, the flag -e may be omitted. The -n option suppresses the default output; -g causes all substitutions to be global, as if suffixed g. The -l option causes sed to flush its output buffer after every newline. A script consists of editing commands, one per line, of the following form:- [address [, address] ] function [argument ...]
- a\
-
- text
- Append. Place text on the output before reading the next input line.
- b label
- Branch to the : command bearing the label. If label is empty, branch to the end of the script.
- c\
-
- text
- Change. Delete the pattern space. With 0 or 1 address or at the end of a 2-address range, place text on the output. Start the next cycle.
- d
- Delete the pattern space. Start the next cycle.
- D
- Delete the initial segment of the pattern space through the first newline. Start the next cycle.
- g
- Replace the contents of the pattern space by the contents of the hold space.
- G
- Append the contents of the hold space to the pattern space.
- h
- Replace the contents of the hold space by the contents of the pattern space.
- H
- Append the contents of the pattern space to the hold space.
- i\
-
- text
- Insert. Place text on the standard output.
- n
- Copy the pattern space to the standard output. Replace the pattern space with the next line of input.
- N
- Append the next line of input to the pattern space with an embedded newline. (The current line number changes.)
- p
- Print. Copy the pattern space to the standard output.
- P
- Copy the initial segment of the pattern space through the first newline to the standard output.
- q
- Quit. Branch to the end of the script. Do not start a new cycle.
- r rfile
- Read the contents of rfile. Place them on the output before reading the next input line.
- s/regular-expression/replacement/flags
- Substitute the replacement string for instances of the regular-expression in the pattern space. Any character may be used instead of For a fuller description see regexp(7). Flags is zero or more of
- g
- Global. Substitute for all non-overlapping instances of the regular expression rather than just the first one.
- p
- Print the pattern space if a replacement was made.
- w wfile
- Write. Append the pattern space to wfile if a replacement was made.
- t label
- Test. Branch to the command bearing the label if any substitutions have been made since the most recent reading of an input line or execution of a If label is empty, branch to the end of the script.
- w
- wfile
- x
- Exchange the contents of the pattern and hold spaces.
- y/string1/string2/
- Transform. Replace all occurrences of characters in string1 with the corresponding character in string2. The lengths of string1 and string2 must be equal.
- !function
- Don't. Apply the function (or group, if function is only to lines not selected by the address(es).
- : label
- This command does nothing; it bears a label for b and t commands to branch to.
- =
- Place the current line number on the standard output as a line.
- {
- Execute the following commands through a matching only when the pattern space is selected.
- An empty command is ignored.
EXAMPLES¶
- sed 10q file
- Print the first 10 lines of the file.
- sed '/^$/d'
- Delete empty lines from standard input.
- sed 's/UNIX/& system/g'
- Replace every instance of by
sed 's/ *$// drop trailing blanks /^$/d drop empty lines s/ */\ replace blanks by newlines /g /^$/d' chapter*
- Print the files chapter1, chapter2, etc. one word to a line.
nroff -ms manuscript | sed ' ${ /^$/p if last line of file is empty, print it } //N if current line is empty, append next line /^\n$/D' if two lines are empty, delete the first
- Delete all but one of each group of empty lines from a formatted manuscript.