GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzare Sed per sostituire una stringa con una contenente un nome di directory (ad esempio una barra "/")?

So che questo è stato chiesto in precedenza, ma ho difficoltà a capire le risposte che ho trovato. Fondamentalmente voglio usare

sed -i 's/string//some/directory/g' file.txt

e non riesco a trovare una risposta diretta su come creare /some/directory non spezzare il sed sintassi.

Risposta accettata:

sed consente diversi delimitatori di sintassi, / essendo solo quello più comunemente usato.

Puoi anche dire

sed -i 's,<string>,<some/directory>,g' file.txt

dove il , ora ha la funzione solitamente eseguita da / , liberando così quest'ultimo dal suo significato speciale.

Nota, tuttavia (come sottolineato da @Jeff Schaller), che ora il , non deve apparire nel nome del file o della directory e è un carattere valido per i nomi dei file! Questa risposta fornisce una buona panoramica su come procedere quando si applica sed in una stringa con caratteri speciali.


Linux
  1. Come utilizzare Sed per sostituire una stringa multilinea?

  2. Come utilizzare Sed o Ex per sostituire un blocco (codice multilinea) con un nuovo blocco di testo (codice)?

  3. Quando dovrei usare una barra finale su una directory??

  4. Linux:la barra (/) fa parte del nome della directory principale di Linux?

  5. Sostituisci una parola con un'altra in bash

Come utilizzare sed per trovare e sostituire la stringa nei file

Come utilizzare il comando SED per trovare e sostituire la stringa nei file

I 20 migliori comandi sed da usare

Come utilizzare Sed per trovare e sostituire una stringa in un file

Utilizzo di sed per dividere una stringa con un delimitatore

Rsync copia la directory corrente con il nome