DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(sed.info.gz) Execution Cycle

Info Catalog (sed.info.gz) sed Programs (sed.info.gz) Addresses
 
 How `sed' Works
 ===============
 
    `sed' maintains two data buffers: the active _pattern_ space, and
 the auxiliary _hold_ space. Both are initially empty.
 
    `sed' operates by performing the following cycle on each lines of
 input: first, `sed' reads one line from the input stream, removes any
 trailing newline, and places it in the pattern space.  Then commands
 are executed; each command can have an address associated to it:
 addresses are a kind of condition code, and a command is only executed
 if the condition is verified before the command is to be executed.
 
    When the end of the script is reached, unless the `-n' option is in
 use, the contents of pattern space are printed out to the output
 stream, adding back the trailing newline if it was removed.(1) Then the
 next cycle starts for the next input line.
 
    Unless special commands (like `D') are used, the pattern space is
 deleted between two cycles. The hold space, on the other hand, keeps
 its data between cycles (see commands `h', `H', `x', `g', `G' to move
 data between both buffers).
 
    ---------- Footnotes ----------
 
    (1) Actually,   if `sed' prints a line without the terminating
 newline, it will   nevertheless print the missing newline as soon as
 more text is sent to   the same output stream, which gives the "least
 expected surprise"   even though it does not make commands like `sed -n
 p' exactly   identical to `cat'.
 
Info Catalog (sed.info.gz) sed Programs (sed.info.gz) Addresses
automatically generated byinfo2html