tipos nomina matriculas fisiologia definicion callejeros bogota sed

nomina - Intentando escapar de a/for sed en ubuntu



sed linux (4)

El caracter justo después del comando s no necesita ser a / . Cuando trabajo con rutas, uso : como en:

sudo sed ''s:a:b:g'' -i /tmp/test

Estoy tratando de usar sed para reemplazar una ruta en un archivo.

sudo sed ''s/a/b/g'' -i /tmp/test

Sin embargo, la variable es

a = /var/lib and b = /data/lib

¿Cómo escapo de la barra?


En sed (1), como en vi (1), el ''/'' es simplemente el separador habitual. Se puede escapar con / , lo que lleva al "síndrome del palillo de dientes inclinado" cuando se mungan los nombres de ruta:

sed -e ''s///var//lib/data//lib/'' ...

Puede usar otro carácter no verbal, por ejemplo '';'':

sed -e ''s;/var/lib;data/lib; ...


Esto debería funcionar

sed -i "s@$a@$b@g" /tmp/test

Dos cosas que debe tener en cuenta:

1) si quieres usar variables en tu línea sed, usa comillas dobles

2) el delimitador podría ser distinto de " / ", por ejemplo @, #, : ...


Puede cambiar el delimitador de sed por ejemplo use # lugar:

$ sed ''s#/var/lib#data/lib#'' /var/lib data/lib