stringtranslate.com

cortar (Unix)

En informática , cutes una utilidad de línea de comandos en sistemas operativos Unix y similares que se utiliza para extraer secciones de cada línea de entrada, generalmente de un archivo . Actualmente forma parte del paquete GNU coreutils y del sistema base BSD .

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). Se debe proporcionar un rango en cada caso que consta de uno de los siguientes: N, N-M, N-( Nhasta el final de la línea), o -M(inicio de la línea a M), donde N y M se cuentan desde 1 (no hay ningún valor cero). Desde la versión 6, se genera un error si se incluye un valor cero. Antes de esto, el valor se ignoraba y se asumía que era 1.

Historia

La versión original de Bell Labs fue escrita por Gottfried WR Luderer. [1] [2] cut es parte de la Guía de Portabilidad X/Open desde la edición 2 de 1987. Fue heredada en la primera versión de POSIX.1 y la Especificación Única de Unix . [3] Apareció por primera vez en AT&T System III UNIX en 1982. [4]

La versión cutincluida en GNU coreutils fue escrita por David M. Ihnat, David MacKenzie y Jim Meyering. [5] El comando está disponible como un paquete separado para Microsoft Windows como parte de la colección UnxUtils de puertos Win32 nativos de utilidades comunes de GNU similares a Unix. [6] El comando cut también ha sido portado al sistema operativo IBM i . [7]

Ejemplos

Suponiendo un archivo llamado " file" que contiene las líneas:

foo:bar:baz:qux:quuxuno:dos:tres:cuatro:cinco:seis:sietealfa:beta:gamma:delta:épsilon:zeta:eta:theta:iota:kappa:lambda:muEl rápido zorro marrón salta sobre el perro perezoso.

Para generar los caracteres del cuarto al décimo de cada línea:

$ cut  -c 4 -10 archivo :bar:ba :two:th ha:beta rápido  

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 - file quux cinco:seis:siete epsilon: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 -despecifica un único carácter delimitador (en el ejemplo anterior, dos puntos) que sirve como separador de campos. La opción -fespecifica el rango de campos incluidos en la salida (aquí, los campos van desde cinco hasta el final). La opción -dpresupone el uso de option -f.

Para generar el tercer campo de cada línea utilizando el espacio como delimitador de campo:

$ corte  -d " " -f 3 archivo foo:bar:baz:qux:quux uno:dos:tres:cuatro:cinco:seis:siete alfa:beta:gamma:delta:epsilon:zeta:eta:theta:iota: kappa:lambda:mu marrón    

(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 = proceso.idproceso $ corte  -d "." -f1 <<< $ línea proceso $ corte -d "." -f2 <<< $ línea idproceso         

Sintaxis

cortar [-b lista] [-c lista] [-f lista] [-n] [-d delim] [-s] [archivo]

Las banderas que se pueden utilizar incluyen:

-b
Bytes; una lista que sigue a -b especifica un rango de bytes que se devolverán, p. ej., devolvería los primeros 66 bytes de una línea. Nota: si se usa junto con -n , no se dividirán caracteres multibyte. No es necesario. -b solo funcionará en líneas de entrada de menos de 1023 bytes.cut -b1-66
-do
Caracteres; una lista que sigue a -c especifica un rango de caracteres que se devolverán, por ejemplo, devolvería los primeros 66 caracteres de una líneacut -c1-66
-F
Especifica una lista de campos, separados por un delimitador
lista
Lista de campos denotados con números enteros separados por comas o espacios en blanco, ordenados de forma incremental. El indicador - se puede proporcionar como abreviatura para permitir la inclusión de rangos de campos, por ejemplo, 4-6 para los rangos 4-6 o 5- como abreviatura para el campo 5 hasta el final, etc.
-norte
Utilizado en combinación con -b suprime las divisiones de caracteres multibyte.
-d
Delimitador; el carácter que sigue inmediatamente a la opción -d es el delimitador de campo que se utiliza junto con la opción -f ; el delimitador predeterminado es el tabulador . Los espacios y otros caracteres con significados especiales dentro del contexto del shell en uso deben ir entre comillas o con caracteres de escape según sea necesario.
-s
Omite las líneas que no contienen delimitadores de campo cuando se especifica -f , a menos que se indique lo contrario.
archivo
El archivo (y la ruta correspondiente, si es necesario) que se procesará como entrada. Si no se especifica ningún archivo, se utilizará la entrada estándar .

Véase también

Referencias

  1. ^ "cut(1) - Páginas del manual de OpenBSD".
  2. ^ "[TUHS] Un retrato de cut(1)". 15 de enero de 2020.
  3. ^ cut  – Referencia de shell y utilidades, La especificación única de UNIX , versión 4 de The Open Group
  4. ^ cut(1)  –  Manual de comandos generales de FreeBSD
  5. ^ cut(1)  –  Manual de comandos generales de Linux
  6. ^ "Puertos Win32 nativos de algunas utilidades GNU". unxutils.sourceforge.net .
  7. ^ IBM . «Programación Qshell para IBM System i versión 7.2» (PDF) . IBM . Archivado (PDF) del original el 18 de septiembre de 2020 . Consultado el 5 de septiembre de 2020 .

Enlaces externos