cut
El comandos cut nos permite cortar y mostrar columnas de un fichero o la entrada estándar en base a un delimitador (por defecto el tabulador) que se puede definir con -d o en base a posiciones de caracteres con -c. Para indicar que columnas queremos mostrar usaremos -f.
Por ejemplo para listar los usuarios de sistema y su shell, podemos hacer:
cut -d : -f 1,7 /etc/passwd nobody:/usr/bin/false root:/bin/sh
Delimitador : y las columnas 1 y 7.
Un problema que tiene cut es que -csolo permite contar de izquierda a derecha pero no al revés, por loq ue si queremos quedarnos con el principio de la frase no podemos:
$ echo "esto es una frase de prueba" | cut -c18- de prueba
Pero tenemos varias soluciones:
# invirtiendo el orden de la frase
$ echo "esto es una frase de prueba" | rev | cut -c11- | rev
esto es una frase
# con head, pero perdemos el salto de línea
$ echo "esto es una frase de prueba" | head -c 18
esto es una frase
# con awk
$ echo "esto es una frase de prueba" | awk '{print substr($0,0,length-9)}'
esto es una frase