Foros del Web » Administración de Sistemas » Unix / Linux »

Edicion de archivo en Unix

Estas en el tema de Edicion de archivo en Unix en el foro de Unix / Linux en Foros del Web. Hola, tengo un archivo de texto generado al direccionar la salida de un proceso descrito en un script. Este archivo contiene los parametros de configuracion ...
  #1 (permalink)  
Antiguo 26/03/2008, 17:20
Avatar de jotaaigriegao  
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años, 2 meses
Puntos: 0
Edicion de archivo en Unix

Hola, tengo un archivo de texto generado al direccionar la salida de un proceso descrito en un script. Este archivo contiene los parametros de configuracion de un servidor. Sin embargo, lo que yo deseo al final es el archivo, sin las 6 primeras lineas y sin las 3 ultimas. Este tratamiento del archivo debe ser dado dentro del script que lo genera. El shell usado es el bash.

Espero puedan ayudarme compañeros, gracias
  #2 (permalink)  
Antiguo 27/03/2008, 14:54
Avatar de jotaaigriegao  
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Edicion de archivo en Unix

la sentencia para copiar por ejemplo, desde la linea x hasta la linea y un archivo y sobreescribirlo seria usando un comando ex del vi:

:x,yw!

ahora, el asunto es.. como hacer para que este comando pueda ejecutarlo "desde afuera"? sin entrar al vi... se que hay una manera pero exactamente no la se. es posible esto?

les recuerdo que este tratamiento del archivo se realizara en lineas que correspondan a un script.

Gracias
  #3 (permalink)  
Antiguo 27/03/2008, 15:39
Avatar de jotaaigriegao  
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Edicion de archivo en Unix

Amigos, encontre la solucion para este caso particular.
Como les dije, la idea era retirar del archivo fuente las 6 primeras lineas y las 3 ultimas. para esto, luego de crear mi archivo el codigo viene a ser:

vi ${nombre} << EOF
:${ini},${fin}wq!
EOF


donde $nombre es el nombre del archivo, $ini y $fin son los numeros de lineas que limitan el nuevo archivo, es decir 6 y `wc -l $nombre` - 3

el vi presenta un warning porque la entrada de comandos no se realiza desde el teclado.
Espero poder ayudar en algo con este post
  #4 (permalink)  
Antiguo 27/03/2008, 17:10
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 57
Re: Edicion de archivo en Unix

Tambien te sirve el comando ex

Segun la descripcion en el manual:

ex, edit - extended line-oriented text editor

Al comando le puedes enviar los comandos que quieres ejecutar (algo parecido a si estuvieras dentro del vi)

Por ejemplo:
ex - -c "1d|w!|q!" $archivoTemp

Este comando lo utilizo dentro de un for para ir eliminando la primer linea. Con el comando elimino 1 linea, guardo y salgo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:23.