martes, 10 de marzo de 2009

Tips para Linux que todos deberiamos saber. Parte VII

Continua la serie de tips para linux que deberíamos saber, esta vez con parte VII.
Si deseas puedes ver las otras partes de la serie:

#31 Editando sin un editor

Cuando los archivos son muy grandes es difícil de manipularlos con un editor de texto. Si necesitas hacerlo regularmente, hay opciones para hacerlo mas rápido usando algunos comandos, por ejemplo:

Para imprimir las columnas 1 y 3 del archivo al archivo2, se puede usar awk:
awk '{print $1, $3}' archivo1 > archivo2

Para mostrar solo los caracteres desde la columna 8 a la 15 del archivo1, se puede usar cut:
cut -c 8-15 archivo1 > archivo2

Para reemplazar la palabra uno por la palabra dos en el archivo1, se puede usar esto:
sed "s/uno/dos/g" archivo1 > archivo2

#32 Hacer backup solo de los archivos seleccionados

Si quieres usar tar para hacer copias de seguridad (backup) de ciertos directorios, puedes usar entonces la opcion -T. Primero crea un archivo con el archivo que vas a copiar:
cat >> /etc/backup.conf
# /etc/passwd
# /etc/shadow
# /etc/yp.conf
# /etc/sysctl.conf
EOF

Luego ejecuta tar con la opcion -T apuntando al archivo recién creado:
tar -cjf bck-etc-`date +%Y-%m-%d`.tar.bz2 -T /etc/backup.conf

Listo, ya tienes tu backup.

#33 Juntar columnas en archivos

Mientras que dividir columnas en un archivo es sencillo, juntarlas es un poco complicado, aquí un pequeño código que hace el trabajo:

#!/bin/sh
length=`wc -l $1 | awk '{print $1}'`
count=1
[ -f $3 ] && echo "Opcionalmente removido$3" && rm -i $3
while [ "$count" -le "$length" ] ; do
a=`head -$count $1 | tail -1`
b=`head -$count $2 | tail -1`
echo "$a $b" >> $3
count=`expr $count + 1`
done

Guardalo como juntar.sh y dale permiso de ejecución:
chmod u+x juntar.sh

Ahora si quieres juntar las columnas del archivo1 y archivo2 y archivo3 solo debes ejecutarlo:
/ruta/a/juntar.sh archivo1 archivo2 archivo3

Donde ruta/a/ debes ser reemplazado con la ruta donde se encuentra juntar.sh.

#34 Distincion entre mayusculas y minusculas

A pesar de que en algunos sistemas operativos no se distingue entre mayúsculas en minúsculas, sabes que en Linux no es así, en Linux no es igual "COMMAND" que "command". Esto puede dar problemas cuando se pasan archivos entre Windows y Linux. tr es una pequeña utilidad shell que puede ser usado para cambiar un puñado de archivos:
#!/bin/sh
for i in `ls -1`; do
file1=`echo $i | tr [A-Z] [a-z] `
mv $i $archivo1 2>/dev/null
done
Cuando lo ejecutas, ARCHIVO1 y archiVo2 se renombraran como archivo1 y 2.

#35 Macros en Emacs

Cuando editas archivos quizás estes realizando tareas repetitivas, para ahorrarte tiempo podrías crear una macro. En Emacs, puedes hacerlo con los siguientes pasos:
  1. Presiona CTRL + X para empezar a grabar.
  2. Empieza a realizar la tarea que deseas repetir.
  3. Nuevamente CTRL + X para dejar de grabar.
Ahora puedes ejecutar tu macro con:
Ctrl -u "numero" Ctrl -x e

Donde numero es el numero de veces que deseas que se ejecute la macro. Si ingresas el valor 0, la macro se ejecutara hasta el final del archivo.

1 comentario:

Pedro Osorio G. dijo...

Excelente este tips, me viene como anillo al dedo.
Gracias