Linux / Comando cut: extraer posiciones y campos de cada línea
cut selecciona posiciones de bytes o caracteres, o campos separados por delimitadores, en cada línea de entrada. Es útil para extraer columnas sencillas, pero no sustituye a un analizador de CSV.
En el modo de campo, -f utiliza por defecto el tabulador como delimitador. Para usar dos puntos o comas, especifique -d junto con él. Elija -c y -b considerando la implementación y la codificación de caracteres.
Sintaxis básica
cut -d 'delimitador' -f número_de_campo [archivo ...]
La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de man cut en el sistema actual.
Ejemplos de uso
Extracción de campos separados por dos puntos
Extrae el primer campo de la lista de cuentas del sistema.
cut -d ':' -f 1 /etc/passwd
Seleccionar varios campos
Los campos se imprimen en su orden original de entrada, no en el orden de los números de la lista.
cut -d ':' -f 1,7 /etc/passwd
Extracción de rangos de caracteres
Se utiliza al inspeccionar la parte inicial de cada línea.
cut -c 1-8 sample.txt
Resultado de extraer campos con un delimitador
Es un ejemplo de cómo extraer solo el primer campo de dos filas separadas por dos puntos. -d es el delimitador, y -f es el número del campo que se seleccionará.
printf 'alpha:100\nbeta:200\n' | cut -d: -f1
Ejemplo de salida:
alpha
beta
cut -d ' ' -f2 no puede analizar de manera confiable texto con múltiples espacios consecutivos en columnas. Para esos datos, awk es adecuado. Formatos como CSV, donde el delimitador puede estar dentro de comillas, no se pueden manejar con precisión solo con cut, por lo que se debe usar un analizador CSV dedicado.
Opciones y formatos principales
| Opciones·Formato | Descripción |
|---|---|
-d delimitador |
Especifica el carácter delimitador de campo. |
-f lista |
Elige el número de campo o el rango que se va a imprimir. |
-c lista |
Selecciona la posición del carácter. |
-b lista |
Selecciona la posición del byte. |
-s |
En modo de campos, omite las líneas que no tienen delimitador. |
Precauciones al usar
cut -d ',' no entiende las comas dentro de comillas ni los campos CSV que se extienden a varias líneas. Para esos datos, use un parser específico de CSV. Las líneas sin delimitador se imprimen tal cual de manera predeterminada, por lo que, si es necesario, agregue -s.
Preguntas frecuentes
¿También se pueden extraer varias columnas separadas por espacios con cut?
Si el ancho de los espacios consecutivos no es consistente, los números de campo pueden desalinearse. Para este tipo de entrada, awk suele ser más adecuado.
Documentación oficial
Puede consultar el comportamiento exacto de las opciones y las diferencias según la implementación en la documentación oficial de cut.




