Asumamos que tenemos el mismo archivo de ejemplo de mi post anterior llamado dias.txt pero le agregaré unas cuantas líneas en blanco para poder que quede como sigue a continuación:
Lun Mar Mie Jue Vie Sab Dom
Pueden usar cualquiera de los siguientes comandos para borrar todas las líneas vacías del archivo dias.txt: sed, awk o perl
El resultado seria algo como lo siguiente:
Lun Mar Mie Jue Vie Sab Dom
Recuerden que pueden imprimir en pantalla el contenido de dias.txt usando el comando
cat dias.txt
- Gnu/sed:
Usando una regex le indicamos a sed que borre las líneas que no tienen nada entre el principio(^) y el fin($) de dicha linea
podemos escribir el contenido de dias.txt modificado en otro archivo (dias2.txt):sed '/^$/d' dias.txt > dias2.txt #cat dias2.txt
O bien podemos modificar dias.txt directamentesed -i '/^$/d' dias.txt #cat dias.txt
- awk:
Usando awk el comando sería
awk 'NF > 0' dias.txt > dias2.txt #cat dias2.txt
- perl:
El siguiente comando usando perl, borra todas las líneas bacias y guarda el archivo original como dias.txt.bakup, muy practico para evitar perder el archivo original si algo sale mal
perl -i.backup -n -e "print if /\S/" input.txt #cat dias.txt #cat dias.txt.backup
Hasta la próxima.
Gracias man, sugerencia usa el corrector ortográfico "vacías"
ResponderEliminarSupongo que estos ejemplos cargan en memoria todo el contenido, por tanto no son usables para archivos muy grandes?
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminar