cut
cut OPCIÓN... [ARCHIVO]...
Muestra columnas de byte o campo especificadas de cada línea de stdin o los archivos de entrada
Options
--bytes=<LIST>,-b <LIST>-
filtrar columnas de byte de la fuente de entrada
--characters=<LIST>,-c <LIST>-
alias para modo carácter
--delimiter=<DELIM>,-d <DELIM>-
especificar el carácter delimitador que separa campos en la fuente de entrada. Por defecto Tab.
-w <WHITESPACE>-
Usar cualquier número de espacios en blanco (Espacio, Tab) para separar campos en la fuente de entrada (extensión FreeBSD).
--fields=<LIST>,-f <LIST>-
filtrar columnas de campo de la fuente de entrada
--complement-
invertir el filtro - en lugar de mostrar solo las columnas filtradas, mostrar todas excepto esas columnas
--only-delimited,-s-
en modo campo, solo mostrar líneas que contienen el delimitador
--zero-terminated,-z-
en lugar de filtrar columnas basado en línea, filtrar columnas basado en \0 (carácter NULL)
--output-delimiter=<NEW_DELIM>-
en modo campo, reemplazar el delimitador en líneas de salida con el argumento de esta opción
-n-
(ignored)
Cada llamada debe especificar un modo (qué usar para columnas), una secuencia (qué columnas mostrar), y proporcionar una fuente de datos
Especificar un modo
Use –bytes (-b) o –characters (-c) para especificar modo byte
Use –fields (-f) para especificar modo campo, donde cada línea se divide en campos identificados por un carácter delimitador. Por ejemplo, para un CSV típico podría usar esto en combinación con establecer coma como delimitador
Especificar una secuencia
Una secuencia es un grupo de 1 o más números o rangos inclusivos separados por comas.
cut -f 2,5-7 algun_archivo.txt
mostrará el 2º, 5º, 6º y 7º campo para cada línea fuente
Los rangos pueden extenderse hasta el final de la fila excluyendo el segundo número
cut -f 3- algun_archivo.txt
mostrará el 3er campo y todos los campos después para cada línea fuente
El primer número de un rango puede ser excluido, y esto es efectivamente lo mismo que usar 1 como el primer número: hace que el rango comience en la primera columna. Los rangos también pueden mostrar una sola columna
cut -f 1,3-5 algun_archivo.txt
mostrará el 1º, 3º, 4º y 5º campo para cada línea fuente
La opción –complement, cuando se usa, invierte el efecto de la secuencia
cut –complement -f 4-6 algun_archivo.txt
mostrará todos los campos excepto el 4º, 5º y 6º
Especificar una fuente de datos
Si no se especifican argumentos de archivo fuente, stdin se usa como la fuente de líneas a mostrar
Si se especifican argumentos de archivo fuente, stdin se ignora y todos los archivos se leen consecutivamente si un archivo fuente no se lee exitosamente, se mostrará una advertencia a stderr, y el código de estado eventual será 1, pero cut continuará leyendo a través de los archivos fuente procedentes
Para mostrar columnas tanto de STDIN como de un argumento de archivo, use - (guión) como argumento de archivo fuente para representar stdin.
Opciones de Modo Campo
Los campos en cada línea son identificados por un delimitador (separador)
Establecer el delimitador
Establezca el delimitador que separa campos en el archivo usando la opción –delimiter (-d). Establecer el delimitador es opcional. Si no se establece, se usará un delimitador por defecto de Tab.
Si se proporciona la opción -w, los campos serán separados por cualquier número de caracteres de espacio en blanco (Espacio y Tab). El delimitador de salida será un Tab a menos que se especifique explícitamente. Solo una de las opciones -d o -w puede ser especificada. Esta es una extensión adoptada de FreeBSD.
Opcionalmente Filtrar basado en delimitador
Si se proporciona la bandera –only-delimited (-s), solo las líneas que contienen el delimitador serán mostradas
Reemplazar el delimitador
Si se proporciona la opción –output-delimiter, el argumento usado para ella reemplazará el carácter delimitador en cada línea mostrada. Esto es útil para transformar datos tabulares - ej. para convertir un CSV a un TSV (archivo separado por tabs)
Finales de línea
Cuando se usa la opción –zero-terminated (-z), cut ve \0 (null) como el carácter de ‘final de línea’ (tanto para propósitos de leer líneas como separar líneas mostradas) en lugar de \n (nueva línea). Esto es útil para datos tabulares donde algunas de las celdas pueden contener nuevas líneas
echo ‘ab\0cd’ | cut -z -c 1
resultará en ‘a\0c\0’
Examples
Imprime un rango específico de caracteres/campos de cada línea:
{{comando}} | cut --{{characters|field}} {{1|1,10|1-10|1-|-10}}
Imprime un rango de campos de cada línea con un [d]elimitador específico:
{{comando}} | cut --delimiter "{{,}}" --fields {{1}}
Imprime un rango de [c]aracteres de cada línea del archivo específico:
cut --characters {{1}} {{ruta/al/archivo}}
Imprime [c]ampos específicos de líneas terminadas en NUL (por ejemplo, como en find . -print0) en lugar de nuevas líneas:
{{comando}} | cut --zero-terminated --fields {{1}}
The examples are provided by the tldr-pages project under the CC BY 4.0 License.
Please note that, as uutils is a work in progress, some examples might fail.