sed: Eliminar espacios en blanco y tabuladores en ficheros de configuración | Algo de Linux

sábado, 21 de noviembre de 2015

sed: Eliminar espacios en blanco y tabuladores en ficheros de configuración

Cuando trabajamos con shell scripts en los que necesitamos hacer comparaciones, muchas veces nos surgen problemas porque el usuario ha introducido espacios en blanco y/o tabuladores. 

Supongamos que tenemos un fichero mayhave en el que el usuario ha introducido los nombres de los paquetes que el sistema puede tener con espacios y tabuladores. Por ejemplo:
        acpi     
     man


              cinnamon-desktop-environment
         
zip





    mtools

Podemos quitar todos los espacios y tabuladores de una forma muy sencilla, con tan sólo ejecutar el comando sed:
# sed -i -e 's/^[ \t]*//; s/[ \t]*$//; /^$/d' fichero
Y el fichero quedaría así:
acpi
man
cinnamon-desktop-environment
zip

Si dividimos las expresión aplicada con sed en partes, veremos que es muy sencillo:
  • Eliminamos los espacios en blanco y tabuladores al comienzo de cada línea:
    s/^[ \t]*//
  • Eliminamos los espacios en blanco y tabuladores al final de cada línea:
    s/[ \t]*$//
  • Eliminamos las líneas en blanco con líneas en blanco formadas por espacios y/o tabuladores:
    /^$/d
Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: