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

Borrar linea de un archivo plano

Estas en el tema de Borrar linea de un archivo plano en el foro de Unix / Linux en Foros del Web. ¿Borrar linea en un archivo de texto en linux? Hola tengo dos archivos de texto en linux y necesito buscar la manera de borrar de ...
  #1 (permalink)  
Antiguo 23/09/2008, 11:55
 
Fecha de Ingreso: septiembre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Borrar linea de un archivo plano

¿Borrar linea en un archivo de texto en linux?
Hola tengo dos archivos de texto en linux y necesito buscar la manera de borrar de un archivo datos que ya estan en el otro para entenderlo voy hacer un ejemplo

Archivo 1

0129543|0129543|0
3246572|3245672|12
1234567|1234567|0
0987643|0987654|30

Archivo 2

0129543:0129543
3246572:3245672
1234567:1234567
0987643:0987654

quiero saber si hay manera de eliminar del archivo 2 todas las lineas que esten en el archivo 1 y contengan el tercer campo 0 solo asi por favor me urge su ayuda
  #2 (permalink)  
Antiguo 24/09/2008, 08:08
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Respuesta: Borrar linea de un archivo plano

Te podria dar la solucion pero seria bueno que tu buscaras esa informacion, con awk lo puedes hacer o con perl. Aunque yo usaria awk. Busca en google y si no encuentras nada te podemos ayudar a ver hasta donde llegas.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #3 (permalink)  
Antiguo 25/09/2008, 09:35
rqd
 
Fecha de Ingreso: julio-2008
Mensajes: 228
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Borrar linea de un archivo plano

prueba con el comando cmp o diff que sirven para comparar archivos.

Probablemente te convenga crear con awk, sed o el comando grep un tercer archivo que solo contega los que el tercer campo es cero en el archivo 1 y luego comparar ese tercer archivo con el segundo.
  #4 (permalink)  
Antiguo 26/09/2008, 14:14
 
Fecha de Ingreso: septiembre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Borrar linea de un archivo plano

la verdad es que ya habia probado con diff y cmp pero no entiendo muy bien su uso igual soy nuevo en la programacion estoy tratando de hacer pequeños scripts que me hagan funcionas basicas intente usar sed pero me elimina todos los datos llevo mas de 2 semanas en esto y no encuentro la solucion.
  #5 (permalink)  
Antiguo 29/09/2008, 10:23
 
Fecha de Ingreso: septiembre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Borrar linea de un archivo plano

Cita:
Iniciado por Koveart Ver Mensaje
Te podria dar la solucion pero seria bueno que tu buscaras esa informacion, con awk lo puedes hacer o con perl. Aunque yo usaria awk. Busca en google y si no encuentras nada te podemos ayudar a ver hasta donde llegas.

Saludos

bueno estuve buscando creo que encontre una forma muy larga pero creo que va a funcionar apenas reinstale mi maquina con linux la ejecuto y les comento sin embargo la coloco aqui a consideracion de ustedes.

primero un grep que me capture todas aquellos que contengan el tercer campo 0 para tener un log y no borrarlos del todo este archivo se llama .

segundo del archivo original eliminar con un sed los que contengan el campo 0 de la siguiente manera

sed '/|0/d' conectados > conect1
cat conect1 > conectados

eso la primera parte con eso eliminaria las lineas que contengan el tercer campo 0

ahora sigue buscar el coincidencias en dos archivos que seria de la siguiente manera con bash esto que viene a continuacion lo encontre en la web de esdebian.org

#!/bin/bash

# *********************** Ayuda ***********************
#Ejecute: sh script.sh parametro1 parametro2 parametro3 parametro4
# Donde:
# parametro1 es el archivo que contiene las claves que se desean buscar
# parametro2 es el archivo en donde se desean buscar las claves
# parametro3 es el archivo donde se desean guardar las coincidencias
# parametro4 es el archivo donde se desean guardar las no coincidencias

archivo_origen=$1;
archivo_buscar=$2;
estan=$3;
noestan=$4;
while read clave ; do
coincide=$(cat $archivo_buscar | grep $clave)
if [ -z $coincide ]; then
echo $clave >> $noestan
else
echo $clave >> $estan
fi
done < $archivo_origen;

porfa alguien me colabore a revisarlo si esta bien mientras monto nuevamente mi maquina. gracias
  #6 (permalink)  
Antiguo 29/09/2008, 11:34
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Respuesta: Borrar linea de un archivo plano

Te voy a ayudar a mi manera. Los dos archivos ¿tienen la misma cantidad de lineas?

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #7 (permalink)  
Antiguo 29/09/2008, 12:20
 
Fecha de Ingreso: septiembre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Borrar linea de un archivo plano

Cita:
Iniciado por Koveart Ver Mensaje
Te voy a ayudar a mi manera. Los dos archivos ¿tienen la misma cantidad de lineas?

Saludos

no ninguno tiene la misma cantidad de hecho el archivo 1 el campo que tiene el 0 es porque hay un script que resta una unidad a ese campo en general por eso todos en algun momento van a llegar a 0.

y el segundo archivo es un localusers de linux la idea es sacarlos de ese archivo cuando el tercer campo en el otro archivo este en 0 ese es el principal inconveniente que tengo
  #8 (permalink)  
Antiguo 29/09/2008, 12:33
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Respuesta: Borrar linea de un archivo plano

Bueno con nawk puedes comprobar el tercer campo del archivo y despues puedes realizar dentro del BEGIn del nawk o gawk un script que dependiendo del resultado de esto te haga muchas otras acciones. Te dejo un par de links para que mires si te sirve.

http://www.linuxtotal.com.mx/index.p...info__tips_021

http://www.well.ox.ac.uk/~johnb/comp/awk/awk.html

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #9 (permalink)  
Antiguo 03/10/2008, 12:28
 
Fecha de Ingreso: septiembre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Borrar linea de un archivo plano

hola he intentado con awk pero me toma todos los campos la verdad es qe no se que hacer
  #10 (permalink)  
Antiguo 03/10/2008, 13:06
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Respuesta: Borrar linea de un archivo plano

¿Como lo has intentado? awk es muy poderoso y te puede ayudar a hacer esto pero tienes que usarlo de la manera correcta. Cuentanos hasta donde has llegado a ver si podemos ayudarte.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
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




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