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:
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 > archivo2Para mostrar solo los caracteres desde la columna 8 a la 15 del archivo1, se puede usar cut:
cut -c 8-15 archivo1 > archivo2Para 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
EOFLuego 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.confListo, 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`
doneGuardalo como juntar.sh y dale permiso de ejecución:
chmod u+x juntar.shAhora si quieres juntar las columnas del archivo1 y archivo2 y archivo3 solo debes ejecutarlo:
/ruta/a/juntar.sh archivo1 archivo2 archivo3Donde 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
doneCuando 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:
- Presiona CTRL + X para empezar a grabar.
- Empieza a realizar la tarea que deseas repetir.
- Nuevamente CTRL + X para dejar de grabar.
Ctrl -u "numero" Ctrl -x eDonde 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.
Comentarios
Gracias