Comandos del shell
Cut
Sirve para cortar las líneas según un criterio.
Opciones
- -c Corta por caracteres, se puede establecer un principio y un final.
- -f Corta por columnas. El delimitar de las columnas se pone con -d
Las columnas se especifican separadas con comas (no puede reordenar), Se puede especificar un nargo poniendo N-M o -N o N- para decir que queremos desde el principio hasta N o desde N hasta el final.
Ejemplos
$ cut -d: -f1,3 /etc/passwd
Mostra la hora actual:
$ date | cut -c12-19
Obtener la MAC
$ ifconfig eth0 | grep HWaddr | cut -d “ “ -f 11
Dar formato a un teléfono:
$ echo '950000000' | cut --output-delimiter "-" -c1-2,3-5,6-
head y tail
Comandos para ver, respectivamente, el principio y el final de ficheros.
Se puede definir la cantidad de líneas que se quieren ver.
Ejemplos
$ (head -5; tail -5) < datos
Comando para ver las primeras 5 líneas y las últimas 5 líneas de un fichero. El () sirve para agrupar los dos comandos y que acepten la misma entrada estándar.
paste
(Ver también cut)
Paste sirve para unir varios ficheros pero en distintas columnas de la salida.
Ejemplos
Por ejemplo, tenemos los ficheros:
==> datos1 <== 1 2 3
==> datos2 <== a b c
==> datos3 <== * ** ***
Usamos el paste para verlos en columnas:
$ paste datos* 1 a * 2 b ** 3 c ***
tr
Traduce caracteres o los borra. Coge los caracteres de la entrada y los traduce en función de los parámetros.
Hay que tener en cuenta que tr trabaja con la tabla de ASCII, por lo que podemos establecer un rango entre los caracteres a traducir:
$ echo "Hola" | tr 'a-z' 'A-Z'
Para pasar a mayúsculas o:
$ echo "Mensaje" | tr '\!-~' 'P-~\!-O'
Para cifrar según el cifrado Cesar todos los caracteres imprimibles del mensaje con un desplazamiento de 47. Por eso traduce de ! a ~ (todos los caracteres imprimibles de ASCII) por el rango de P a ~ seguido del rango de ! a O.
Opciones
- -c Saca el complemento de los caracteres seleccionados.
- -d Borra los caracteres seleccionados
- -s Borra repetidos. Este es muy útil para evitar dobles espacios o errores de sintaxis.
Ejemplos
Obtener letras aleatorias en minúsculas
$ head /dev/urandom | tr -dc "a-z"
En este ejemplo, borra con -d todos lo que no sea de a-z al poner el -c del complemento.