Sed is a non-interactive, or
It interprets a script and performs the actions in the script.
Sed is stream-oriented because,
like many UNIX programs, input flows through the program and is
directed to standard output. For example,
vi is not. Sed's input typically comes from
a file but can be directed from the keyboard. Output
goes to the screen by default but can be captured in a file instead.
Editing one or more files automatically.
Simplifying repetitive edits to multiple files.
Writing conversion programs.
Each line of input is copied into a pattern space.
All editing commands in a sed script are applied in order
to each line of input.
Editing commands are applied to all lines (globally) unless line
addressing restricts the lines affected.
If a command changes the input, subsequent command-addresses
will be applied to the current line in the pattern space, not the original
The original input file is unchanged because the editing commands modify
a copy of the original input line. The copy is sent to standard output
(but can be redirected to a file).