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 > 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:
- 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 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:
Excelente este tips, me viene como anillo al dedo.
Gracias
Publicar un comentario