En informática , cut
es una utilidad de línea de comandos en Unix y sistemas operativos similares a Unix que se utiliza para extraer secciones de cada línea de entrada, generalmente de un archivo . Actualmente es parte del paquete GNU coreutils y del Sistema Base BSD .
Autor (es) original (es) | Laboratorios AT&T Bell |
---|---|
Desarrollador (es) | Varios desarrolladores comerciales y de código abierto |
Versión inicial | Febrero de 1985 |
Sistema operativo | Unix , similar a Unix , IBM i |
Plataforma | Multiplataforma |
Tipo | Mando |
Licencia | coreutils : GPLv3 + |
La extracción de segmentos de línea se puede realizar normalmente mediante bytes ( -b
), caracteres ( -c
) o campos ( -f
) separados por un delimitador ( -d
el carácter de tabulación por defecto). En cada caso debe proporcionarse un rango que consta de uno de N
, N-M,
N-
( N
hasta el final de la línea) o -M
(comienzo de la línea hasta M
), donde N y M se cuentan desde 1 (no hay valor cero). Desde la versión 6, se produce un error si incluye un valor cero. Antes de esto, el valor se ignoró y se asumió que era 1.
Historia
cut
es parte de X / Open Portability Guide desde el número 2 de 1987. Fue heredado en la primera versión de POSIX.1 y la Especificación Única de Unix . [1] Apareció por primera vez en AT&T System III UNIX en 1982. [2]
La versión de coreutilscut
incluida en GNU fue escrita por David M. Ihnat, David MacKenzie y Jim Meyering. [3]
El comando cut también se ha adaptado al sistema operativo IBM i . [4]
Ejemplos de
Suponiendo un archivo llamado " file
" que contiene las líneas:
foo: bar: baz: qux: quuxuno dos tres CUATRO CINCO SEIS SIETEalpha: beta: gamma: delta: épsilon: zeta: eta: theta: iota: kappa: lambda: muel rápido zorro marrón salta sobre el perro perezoso
Para generar del cuarto al décimo caracteres de cada línea:
$ Corte -c 4 -10 archivo : BAR: BA : dos: J ja: beta rápida
Para generar el quinto campo hasta el final de la línea de cada línea utilizando el carácter de dos puntos como delimitador de campo:
$ cut -d ":" -f 5 - archivo quux cinco: seis: siete épsilon: zeta: eta: theta: iota: kappa: lambda: mu el rápido zorro marrón salta sobre el perro perezoso
(tenga en cuenta que debido a que el carácter de dos puntos no se encuentra en la última línea, se muestra la línea completa)
La opción -d
especificaba un delimitador de un solo carácter (en el ejemplo anterior son dos puntos) que sirve como separador de campo. Opción -f
que especifica el rango de campos incluidos en la salida (aquí los campos van desde cinco hasta el final). La opción -d
presupone el uso de la opción -f
.
Para generar el tercer campo de cada línea usando el espacio como delimitador de campo:
$ cut -d "" -f 3 archivo foo: bar: baz: qux: quux uno: dos: tres: cuatro: cinco: seis: siete alpha: beta: gamma: delta: epsilon: zeta: eta: theta: iota: kappa: lambda: mu brown
(Tenga en cuenta que debido a que el carácter de espacio no se encuentra en las primeras tres líneas, se muestran estas líneas completas).
Para separar dos palabras que tengan cualquier delimitador:
$ línea = process.processid $ cut -d "." -f1 <<< $ línea proceso $ corte -d "." -f2 <<< $ line processid
Sintaxis
cortar [-b lista] [-c lista] [-f lista] [-n] [-d delim] [-s] [archivo]
Las banderas que pueden usarse incluyen:
- -B
- Bytes; una lista siguiendo -b especifica un rango de bytes que se devolverán, por ejemplo
cut -b1-66
, devolvería los primeros 66 bytes de una línea. NB Si se usa junto con -n , no se dividirán caracteres de varios bytes . NNB. -b solo funcionará en líneas de entrada de menos de 1023 bytes - -C
- Caracteres; una lista siguiendo -c especifica un rango de caracteres que se devolverán, por ejemplo
cut -c1-66
, devolvería los primeros 66 caracteres de una línea - -F
- Especifica una lista de campos, separados por un delimitador.
- lista
- Una lista separada por comas o en blanco de campos indicados con números enteros, ordenados de forma incremental. La - el indicador se puede proporcionar como abreviatura para permitir la inclusión de rangos de campos, por ejemplo 4-6 para rangos 4-6 o 5- como abreviatura del campo 5 hasta el final, etc.
- -norte
- Usado en combinación con -b suprime divisiones de caracteres multibyte
- -D
- Delimitador; el personaje que sigue inmediatamente al La opción -d es el delimitador de campo que se utiliza junto con la -f opción; el delimitador predeterminado es tab . El espacio y otros caracteres con significados especiales dentro del contexto del shell en uso deben estar entrecomillados o escapados según sea necesario.
- -s
- Omite las líneas que no contienen delimitadores de campo cuando -f se especifica, a menos que se indique lo contrario.
- expediente
- El archivo (y la ruta que lo acompaña si es necesario) para procesar como entrada. Si no se especifica ningún archivo , se utilizará la entrada estándar .
Ver también
Referencias
- ^ especificación única de UNIX , número 7 de The Open Group - Referencia de comandos y utilidades, la
- ^ - Manual de comandos generales de FreeBSD
- ^ - Manual de comandos generales de Linux
- ^ IBM . "IBM System i Versión 7.2 Programación Qshell" (PDF) . Consultado el 5 de septiembre de 2020 .
enlaces externos
- - Referencia de comandos y utilidades, la especificación única de UNIX , número 7 de The Open Group
- Página de corte de Softpanorama .
- Recorte los campos seleccionados de cada línea de un archivo Un retrato del corte (1) y su trasfondo histórico.