sed -i '/^foo/! s/^/bar/' file.txt
-icambia il file sul posto/^foo/!esegue l'azione successiva solo sulle righe diverse da!che inizia con foo^foos/^/bar/cambia l'inizio della riga in barra
Per quanto ne so sed non ha né guardare avanti né guardare indietro. Passa a un linguaggio più potente con una sintassi simile, come perl .
Utilizzi la sintassi delle espressioni regolari compatibili con Perl (PCRE) che non è supportata da GNU sed. Dovresti riscrivere la tua regex secondo SED Regular-Expressions o usare perl invece.
Nota che SED non ha lookahead e quindi non supporta la funzione regex che stavi cercando di usare. Può essere fatto in SED utilizzando altre funzionalità, come altri hanno menzionato.