Linux/Unix Shell Scripting - Ayuda con "perl"

 
Vista:

Ayuda con "perl"

Publicado por Hector Martinez (1 intervención) el 16/03/2017 15:22:47
Buenos días. Estoy usando la siguiente sintaxis para hacer sustituciones directamente sobre archivos:

perl -pi -e "s[lo-que-quiero-quitar][lo-que-quiero-poner]g" Nombre-del-Archivo

No he querido usar el comando SED porque el número de modificaciones es grande y necesito hacer modificaciones directamente sobre el archivo sin generar nuevos archivos por cada modificación; sin embargo, si alguien sabe como usar el comando sin generar archivos basura y que me permita pasar variables en la sintaxis lo agradecería mucho, pues como saben las variables asignadas en shell se declaran con el caracter $, y precisamente ese caracter está reservado para el comando SED pero no para PERL.

Mi pregunta es:

¿Como puedo hacer que la modificación aplique "solo a una línea en concreto" y no a todo el archivo, y quede registrada directamente en el archivo que quiero modificar?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con "perl"

Publicado por Tom (361 intervenciones) el 17/03/2017 08:59:44
Lo primero que deberías hacer es leerte la página man de sed. Lo que alguien pueda saber seguro que está escrito ahí (mira la opción -i).
Por otra parte ¿ qué es eso de los ficheros basura ? Lo que tu llamas ficheros basura, otros lo llamamos ficheros intermedios, y son buenos para recuperarte en caso de errores y, en general, para hacer las cosas bien.
Con lo de las variables "asignadas en shell" me temo que te estás haciendo un lío.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con "perl"

Publicado por Hector Martinez (1 intervención) el 21/04/2017 15:23:19
Llamo "ficheros basura" a ficheros que estoy creando yo mismo por un script que estoy desarrollando, NO LOS CREA EL SISTEMA.

1. Para guardar cambios con SED, HECHOS POR MI, en "archivos de texto" tengo que "redireccionar". Con PERL NO.
2. Ademas SED no reconoce directamente el caracter "$", PERL SI lo reconoce, y ese caracter es necesario para llamar a una variable.

Gracias por la respuesta pero la pregunta era bastante puntual.

¿Como puedo hacer que la modificación aplique "solo a una línea en concreto" y no a todo el archivo, y quede registrada directamente en el archivo que quiero modificar, USANDO EL COMANDO PERL?

Si no se tiene una respuesta concreta es mejor abstenerse de contestar. Lo demas es generar polemicas innecesaria y no demuestra ningun conocimiento ni ayuda a nadie. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar