Il meccanismo di lettura riga per riga si fonda sul così detto pattern space.
Il pattern space è un buffer (spazio di memorizzazione) in cui la riga di input viene memorizzata in attesa di essere processata.
Le istruzioni contenute nei vari script agiscono proprio sulla riga che è stata memorizzata nel pattern space.
Se il primo script modifica la riga nel pattern space, il secondo script agirà sulla riga modificata dal primo script.
Applicati tutti gli script sulla riga nel pattern space, questa viene inviata sullo standard output e nel pattern space viene caricata la riga successiva.
L'insieme di tutte queste attività gestite direttamente da SED prende il nome di ciclo di esecuzione che può essere schematizzato come segue:
Conclusa l'attività n. 5, il ciclo ricomancia con l'attività n. 1, per cui SED riceve la riga successiva dallo stream di input; ogni riga dello stream di input ha, quindi, un proprio ciclo di esecuzione.
L'attività n. 3 è stata definita come applicare lo script sulla riga nel pattern space; questa definizione significa essenzialmente due cose:
L'adress di uno script serve per determinare se sulla riga caricata nel pattern space debba essere eseguito l'istructions dello script.
Le sequenze di caratteri caricate nel pattern space sono le righe di testo provenienti dallo stream di input.
Le righe di testo terminano con un newline.
I caratteri di newline finali, benchè facenti parte della riga di testo, non sono caricati sul pattern space.
Proprio perchè tale newline non è caricato nel pattern space, esso non influenza le verifiche di corrispondenza conseguenti alle espressioni regolari utilizzate negli script di SED.
Quando il pattern space è inviato, per qualsiasi causa, allo standard output, SED si preccupa di aggiungere nuovamente il newline finale.