Come utilizzare diversi delimitatori per il comando sostitutivo di sed?

Sto scrivendo uno script di shell per creare alcuni file di configurazione. Devo sostituire alcuni pattern nei file e un pattern dovrebbe essere sostituito da un percorso.

Quindi la mia domanda è: c’è un modo per sostituire il mio percorso web segnaposto con un percorso senza impostare il backslash di fronte alle barre?

Forse c’è un altro strumento disponibile per fare questo?

Puoi utilizzare un delimitatore regex alternativo come modello di ricerca eseguendo il backslashing:

sed '\,some/path,d' 

E basta usarlo come è per il comando s :

 sed 's,some/path,other/path,' 

Probabilmente vuoi proteggere altri metacaratteri, però; questo è un buon posto per usare Perl e quotemeta , o equivalenti in altri linguaggi di scripting.

Da man sed :

/ regexp /
Abbina le linee che corrispondono all’espressione regolare dell’espressione regolare.

\c regexp c
Abbina le linee che corrispondono all’espressione regolare dell’espressione regolare. Il c può essere qualsiasi carattere diverso da backslash o newline.

s/regular expression/replacement/flags
Sostituire la stringa di sostituzione per la prima istanza dell’espressione regolare nello spazio modello. È ansible utilizzare qualsiasi carattere diverso da backslash o newline al posto di una barra per delimitare RE e la sostituzione. All’interno della RE e della sostituzione, il delimitatore RE stesso può essere usato come carattere letterale se è preceduto da una barra rovesciata.