3 votos

Reemplace la cadena "Desarrollo" con "Puesta en escena" o "Producción" utilizando SED

Estoy tratando de reemplazar la cadena

 : 'development'
 

con

 : 'production'
 

utilizando sed .

Probé algunas opciones incluyendo:

 sed -i "s|: \'development\'|: \'staging\'|g" index.php
 

pero sin suerte. Salida:

 sed: 1: "index.php": command i expects \ followed by text
 

¿Alguien puede ayudar?

5voto

dessert Puntos 928

Usted no necesita escapar las comillas simples dentro de comillas dobles, ver esta respuesta mía:

Adjuntando los caracteres de comillas dobles conserva el valor literal de todos los caracteres dentro de las comillas, con la excepción de $, `, \, y, cuando la historia está habilitada la expansión, !.

Por lo tanto, estos trabajos:

sed -i "s/: 'development'/: 'staging'/g" index.php
sed -i "s|: 'development'|: 'staging'|g" index.php
sed -i 's|: '\''development'\''|: '\''staging'\''|g' index.php

2voto

Cyrus Puntos 1808

Yo sugiero:

 sed "s/: 'development'/: 'production'/" index.php`
 

0voto

Awais Tariq Puntos 118

Me las arreglé para solucionarlo. Resultó que en Mac Machine tengo que postfix .bak con -i. Pero en Linux funcionó sin él. Primero lo intenté en mi máquina local para ver la salida y estaba fallando.

Gracias por toda tu ayuda.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: