Foros del Web » Programas, Hardware y Redes » Unix / Linux »

Borrar filas de un archivo

Estas en el tema de Borrar filas de un archivo en el foro de Unix / Linux en Foros del Web. Hola a todos! Me encuentro con un pequeño problema a la hora de programar. Tengo un archivo .txt el cual tiene 3 columnas de datos. ...
  #1 (permalink)  
Antiguo 09/09/2012, 02:03
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 1 año, 7 meses
Puntos: 1
Borrar filas de un archivo

Hola a todos!

Me encuentro con un pequeño problema a la hora de programar. Tengo un archivo .txt el cual tiene 3 columnas de datos. La primera columna tiene todas las filas llenas de datos, al igual que la segunda columna. Sin embargo en la tercera columna hay algunas celdas vacías. Lo que me gustaría es hacer un script en bin/bash que borre la fila en la que encuentre una celda vacía en la columna 3.

Os agradezco cualquier pista que podáis darme!!!
  #2 (permalink)  
Antiguo 10/09/2012, 07:33
Avatar de AlvaroG
/bin/env python
 
Fecha de Ingreso: julio-2005
Ubicación: Canelones, Uruguay
Mensajes: 7.581
Antigüedad: 8 años, 9 meses
Puntos: 573
Respuesta: Borrar filas de un archivo

Pon un ejemplo del archivo, pero ciertamente hacer lo que pides es bastante fácil con AWK, SED o incluso GREP+CUT


Saludos.
__________________
blog ElCodiguero
  #3 (permalink)  
Antiguo 13/09/2012, 14:40
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 1 año, 7 meses
Puntos: 1
Respuesta: Borrar filas de un archivo

Un ejemplo sería este:

1 2 3
4 5 6
7 8 9
2 3
5 6 7

Si te fijas, hay una celda en blanco. Yo lo que quiero programar es que la fila que tenga una fila en blanco desaparezca, es decir, que el resultado final sea:

1 2 3
4 5 6
7 8 9
5 6 7

Miraré lo que me dices
  #4 (permalink)  
Antiguo 14/09/2012, 09:30
Avatar de AlvaroG
/bin/env python
 
Fecha de Ingreso: julio-2005
Ubicación: Canelones, Uruguay
Mensajes: 7.581
Antigüedad: 8 años, 9 meses
Puntos: 573
Respuesta: Borrar filas de un archivo

Si el archivo no es muy grande, AWK puede hacer esto de forma sencilla (si es muy grande, quizás sea bastante más lento que una expresión con GREP, pero aún así funcionaría bien)

Código bash:
Ver original
  1. awk '$3' archivo

Si fuese con grep, quizás algo como esto:

Código BASH:
Ver original
  1. grep -E "[0-9]+ [0-9]+ [0-9]+" archivo

El tamaño de tu archivo y el sistema que uses determinará cuál de las dos opciones es más eficiente. En archivos grandes GREP puede ser bastante más rápido que AWK, aunque en este caso el patrón es sencillo y quizás la ventaja no sea tanta, de hecho en mi sistema la opción de awk es más rápida en tu archivo de ejemplo.


Saludos.
__________________
blog ElCodiguero

Etiquetas: bash, filas, ip
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 02:02.
SEO by vBSEO 3.3.2