Non riesco a capire come utilizzare sed
per cercare e sostituire stringhe contenenti il carattere /
in un file di testo /etc/myconfig
.sed cerca e sostituisce stringhe contenenti/
Per esempio, nel mio file di testo esistente, ho:
myparam /path/to/a argB=/path/to/B xo
e voglio che questo sostituito dal seguente:
myparam /path/to/c argB=/path/to/D xo
Ho tentato di fare questo in bash:
line='myparam /path/to/a argB=/path/to/B xo'
line_new='myparam /path/to/c argB=/path/to/D xo'
sed -i 's/$line/$line_new/g' /etc/myconfig
Ma non succede nulla.
Cercando
grep -rn "$line" /etc/myconfig
mi fa tornare 'myparam /path/to/a argB=/path/to/B xo'
però.
Qual è il modo corretto di esprimere il mio comando sed
per eseguire questa ricerca e sostituire e gestire correttamente il comando /
? (Mi sa che il personaggio /
nelle mie corde sono quelli mi dà il problema perché ho usato un simile sed
comando per cercare e sostituire un'altra riga nel file di testo senza problemi e che la linea non ha un carattere /
.
Le regole di sostituzione e quotazione riguardano in realtà bash piuttosto che sed in particolare. Potresti voler aggiungere bash come tag. – KarlM
ok. aggiungerà 'bash' come tag. –