cut
100%

Text-Fu · Lección 6

cut

Aprende a seleccionar posiciones de caracteres o campos delimitados de cada línea con `cut`.

La orden cut selecciona posiciones de caracteres o campos concretos de cada línea de entrada. Funciona mejor con texto de estructura coherente cuyos delimitadores y posiciones de campo se conocen.

Crea un pequeño archivo separado por tabuladores para los ejemplos. printf interpreta \t como una tabulación literal y \n como un salto de línea:

$ printf 'name\trole\nalice\tadmin\nbob\tviewer\n' > team.tsv

Selección de posiciones de caracteres

Utiliza -c LIST para seleccionar posiciones de cada línea. Las posiciones empiezan en 1:

$ cut -c 1 team.tsv
n
a
b

La lista puede contener posiciones individuales e intervalos:

$ cut -c 1-4 team.tsv
name
alic
bob
$ cut -c 1,3 team.tsv
nm
ai
bb

Los espacios, tabuladores y signos de puntuación también ocupan posiciones. cut procesa cada línea de forma independiente.

¿Qué orden muestra el primer carácter de cada línea de names.txt?

Selección de campos delimitados por tabuladores

Utiliza -f LIST para seleccionar campos. El delimitador predeterminado es una tabulación:

$ cut -f 2 team.tsv
role
admin
viewer

Al igual que en la selección de caracteres, una lista puede incluir valores como 1, 1,3, 2-4, -3 o 2-.

¿Qué orden muestra el segundo campo delimitado por tabuladores de cada línea de team.tsv?

Elección de un delimitador personalizado

Utiliza -d CHARACTER junto con -f cuando los campos empleen un delimitador distinto de la tabulación. Este ejemplo crea datos separados por punto y coma:

$ printf 'alice;admin\nbob;viewer\n' > team.txt
$ cut -d ';' -f 1 team.txt
alice
bob

El delimitador de esta forma es un único carácter. Entrecomilla ; porque un punto y coma sin comillas tiene un significado de control en la shell.

¿Qué orden muestra el segundo campo delimitado por punto y coma de team.txt?

Tratamiento de líneas sin delimitador

En el modo de campos, cut suele mostrar sin cambios una línea que no contiene el delimitador. Añade -s para suprimir esas líneas:

$ printf 'alice;admin\nheader\nbob;viewer\n' | cut -s -d ';' -f 2
admin
viewer

Esto no valida un archivo CSV general. Un CSV puede contener delimitadores entre comillas, saltos de línea incrustados y reglas de escape que una separación por un solo carácter no comprende; utiliza una herramienta compatible con CSV para esos datos.

¿Qué hace -s en cut -d ':' -f 1?

Lectura desde stdin

Cuando no se indica ningún archivo, o se utiliza - como operando de entrada, cut lee stdin. Esto lo convierte en una etapa natural de una tubería:

$ printf 'red:1\nblue:2\n' | cut -d ':' -f 1
red
blue

En generate-data | cut -d ':' -f 1, ¿de dónde lee cut la entrada?

Lección completada

Has completado cut

Ahora puedes seleccionar posiciones previsibles de texto orientado a líneas con cut.

  • Seleccionar posiciones de caracteres individuales o intervalos.

  • Extraer campos delimitados por tabuladores con -f.

  • Proporcionar un delimitador de un carácter con -d.

  • Suprimir líneas sin delimitador cuando sea apropiado.

  • Leer texto estructurado desde archivos o stdin.

Guarda tu progreso

Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.

Crear una cuenta gratuita
Siguiente Lección
Volver a Text-Fu