miércoles, 12 de octubre de 2011

Algunos comandos para shell scripts: tr, uniq y sort

1. Si queremos quitar espacios en blanco a una variable:
Por ejemplo: a=" hola"
1.1- Con echo:
1.1.1 b=`echo $a`
1.1.2 echo $b da como resulstado "hola"
1.2- Con tr:
1.2.1 b=echo $a | tr -d ' ' da el resultado esperado
1.3- Con sed:
1.3.1 b=echo $a | sed 's/^ *//g' da el resultado esperado
2.1.Reemplazar varias apariciones de espacios en blanco y tabulaciones por un solo espacion en blanco
  sed 's/[ \t] */ /g' | sed 's/[ \t] */ /g'
  Nota: solo con el primer sed eliminar las apariciones sucesivas en un espacio por cada sucesion; el segundo sed reemplaza todos los espacios por uno solo
  ejemplo:  echo -e "hola     \t \t \t \t \t\t\t\t caracola" | sed 's/[ \t] */ /g' | sed 's/[ \t] */ /g'
2.2 Eliminar varias apariciones de espacios en blanco y tabulaciones al principio de linea
   sed 's/^[ \t]*//g'
  ejemplo: echo -e "\t \t  \t  hola caracola" | sed 's/^[ \t]*//g'
2.3 Si queremos usar el comando sed dentro de un shell script con variables debemos quitar las comillas
  referencia: http://www.unix.com/shell-programming-scripting/14085-how-can-i-use-variable-sed.html
  ejemplo:       cat fichero.txt | sed -e s/mytext${var1}0.txt/hola${var2}.txt/g  > salida_${fichero}.txt
3. Si queremos ordenar la salida a pantalla usamos sort
4. Si queremos que no se repitan las lineas repetidas usamos uniq.

No hay comentarios:

Publicar un comentario