Saltar al contenido

¿Cómo escapar de las comillas simples en sed?

Solución:

Cita sed códigos con comillas dobles:

    $ sed "s/ones/one's/"<<<"ones thing"   
    one's thing

No me gusta escapar de los códigos con cientos de barras invertidas, me duelen los ojos. Normalmente lo hago de esta manera:

    $ sed 's/ones/onex27s/'<<<"ones thing"
    one's thing

Un truco es usar la concatenación de cadenas de shell de cadenas adyacentes y escapar de la cita incrustada usando el escape de shell:

sed 's/ones/two'''s/' <<< 'ones thing'

two's thing

Hay 3 cadenas en la expresión sed, que luego el caparazón une:

sed 's/ones/two'

'

's/'

¡Espero que ayude a alguien más!

Simplemente use comillas dobles en el exterior del comando sed.

$ sed "s/ones/one's/" <<< 'ones thing'
one's thing

También funciona con archivos.

$ echo 'ones thing' > testfile
$ sed -i "s/ones/one's/" testfile
$ cat testfile
one's thing

Si tienes soltero y comillas dobles dentro de la cadena, eso también está bien. Simplemente escapa de las comillas dobles.

Por ejemplo, este archivo contiene una cadena con comillas simples y dobles. Usaré sed para agregar una comilla simple y eliminar algunas comillas dobles.

$ cat testfile
"it's more than ones thing"
$ sed -i "s/"it's more than ones thing"/it's more than one's thing/" testfile 
$ cat testfile 
it's more than one's thing
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *