Sed is a non-interactive, or stream-oriented, editor. 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, sort is stream-oriented; 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 input line.
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).