logo

comanda tall a Linux amb exemples

L'ordre cut a linux és una ordre per tallar les seccions de cada línia de fitxers i escriure el resultat a la sortida estàndard. Es pot utilitzar per tallar parts d'una línia per posició de byte, caràcter i camp. L'ordre de retallar talla una línia i extreu el text. Cal especificar una opció amb una ordre en cas contrari donarà un error. Si es proporciona més d'un nom de fitxer, les dades de cada fitxer no van precedits pel seu nom de fitxer.

Taula de contingut



Sintaxi de l'ordre cut

La sintaxi bàsica delcut>l'ordre és:

cut OPTION... [FILE]...>

On

`OPTION`> especifica el comportament desitjat



` FILE> `>representa el fitxer d'entrada.

Nota : SiFILE>no s'especifica, ` cut`> llegeix des de l'entrada estàndard (stdin).

Opcions disponibles a l'ordre de tall

Aquí hi ha una llista de les opcions més utilitzades amb el ` cut`> comandament:



Opció

Descripció

-b, –bytes=LISTA

Selecciona només els bytes especificats aLIST>(per exemple.,-b 1-3,7>).

-c, –caràcters=LLISTA

Selecciona només els caràcters especificats aLIST>(per exemple.,-c 1-3,7>).

-d, –delimitador=DIVIDE

UsosDELIM>com a caràcter delimitador de camp en lloc del caràcter de tabulació.

-f, –camps=LIS

Selecciona només els camps especificats aLIST>, separats pel caràcter delimitador (per defecte és tabulació).

-n

No dividiu els caràcters de diversos bytes (cap efecte tret que-b>o-c>està especificat).

-complement

Inverteix la selecció de camps/caràcters. Imprimeix els camps/caràcters no seleccionats.

Exemples pràctics d'ordre de tall

Considerem dos fitxers amb nom state.txt i capital.txt conté 5 noms dels estats i capitals indis respectivament.

$ cat state.txt Andhra Pradesh Arunachal Pradesh Assam Bihar Chhattisgarh>

Sense cap opció especificada, mostra un error.

  $ cut state.txt   cut: you must specify a list of bytes, characters, or fields Try 'cut --help' for more information.>

Extreu bytes específics (-b>) Utilitzant l'ordre cut

-b (byte): Per extreure els bytes específics, heu de seguir l'opció -b amb la llista de números de bytes separats per comes. L'interval de bytes també es pot especificar mitjançant el guionet (-). Cal especificar la llista de números de bytes, en cas contrari, donarà error.

Pestanyes i retrocés es tracten com un caràcter d'1 byte.

Llista sense intervals :

cut -b 1,2,3 state.txt>
llista sense rang

llista sense rang

Llista amb intervals:

cut -b 1-3,5-7 state.txt>
llista amb rang

llista amb rang

Utilitza un formulari especial per seleccionar bytes des del principi fins al final de la línia:

Formulari especial: selecció de bytes des del principi fins al final de la línia

En això, 1- indica des del 1r byte fins al byte final d'una línia

cut -b 1- state.txt>
forma especial

forma especial amb l'opció -b

En això, -3 indica des del 1r byte al 3r byte d'una línia

cut -b -3 state.txt>
forma especial

opció especial de forma -b

Tallat per personatge (-c>) Utilitzant l'ordre cut

-c (columna): Per tallar per caràcter, utilitzeu l'opció -c. Això selecciona els caràcters donats a l'opció -c. Pot ser una llista de números separats per comes o un rang de números separats per guionet (-).

Pestanyes i retrocés són tractats com un personatge. Cal especificar la llista de números de caràcters, en cas contrari es donarà error amb aquesta opció.

Sintaxi:

cut -c [(k)-(n)/(k),(n)/(n)] filename>

Aquí, k denota la posició inicial del personatge i n indica la posició final del caràcter a cada línia, si k i n estan separats per - en cas contrari només són la posició del caràcter a cada línia del fitxer pres com a entrada.

Extreu caràcters específics:

cut -c 2,5,7 state.txt>
Extreu caràcters específics

Extreu caràcters específics

L'ordre de tall superior imprimeix el segon, cinquè i setè caràcter de cada línia del fitxer.

Extreu els primers set caràcters:

cut -c 1-7 state.txt>
Extreu els primers set caràcters

Extreu els primers set caràcters

L'ordre de tall superior imprimeix els primers set caràcters de cada línia del fitxer. Cut utilitza un formulari especial per seleccionar caràcters des del principi fins al final de la línia:

Forma especial: selecció de caràcters des del principi fins al final de la línia

cut -c 1- state.txt>
seleccionar caràcters des del principi fins al final de la línia

seleccionant caràcters des del principi fins al final de la línia mitjançant l'opció -c

L'ordre anterior s'imprimeix des del primer caràcter fins al final. Aquí al comandament només s'especifica la posició inicial i s'omet la posició final.

cut -c -5 state.txt>
seleccionant caràcters des del principi fins al final de la línia mitjançant l'opció -c

seleccionant caràcters des del principi fins al final de la línia mitjançant l'opció -c

L'ordre superior imprimeix la posició inicial al cinquè caràcter. Aquí s'omet la posició inicial i s'especifica la posició final.

Tallat per camp (-f>) Utilitzant l'ordre cut

-f (camp): -c L'opció és útil per a línies de longitud fixa. La majoria dels fitxers Unix no tenen línies de longitud fixa. Per extreure la informació útil cal tallar per camps en lloc de columnes. La llista del nombre de camps especificat s'ha de separar per comes. Els intervals no es descriuen amb l'opció -f . tallar usos pestanya com a delimitador de camp predeterminat, però també pot funcionar amb un altre delimitador mitjançant l'ús -d opció.

Nota: L'espai no es considera delimitador a UNIX.

Sintaxi:

cut -d 'delimiter' -f (field number) file.txt>

Extreu el primer camp:

Com a l'arxiu state.txt els camps estan separats per espai si no s'utilitza l'opció -d, llavors imprimeix la línia sencera:

cut -f 1 state.txt>
Extreu el primer camp mitjançant l'opció -f

Extreu el primer camp mitjançant l'opció -f

Si ` -d` s'utilitza l'opció, llavors es considera l'espai com a separador o delimitador de camps:

cut -d ' ' -f 1 state.txt>
espai com a separador o delimitador de camps

espai com a separador o delimitador de camps

Extreu els camps de l'1 al 4:

L'ordre imprimeix el camp del primer al quart de cada línia del fitxer.

cut -d ' ' -f 1-4 state.txt>

L'ordre imprimeix el camp del primer al quart

L'ordre imprimeix el camp del primer al quart

Sortida del complement (--complement>) Utilitzant l'ordre cut

-complement: Com el seu nom indica, complementa la sortida. Aquesta opció es pot utilitzar en combinació amb altres opcions amb -f o amb -c .

cut --complement -d ' ' -f 1 state.txt>
--complement

-complement

cut --complement -c 5 state.txt>

--complement

-complement

Delimitador de sortida (--output-delimiter>) Utilitzant l'ordre cut

-delimitador de sortida: Per defecte, el delimitador de sortida és el mateix que el delimitador d'entrada amb el qual especifiquem al tall -d opció. Per canviar el delimitador de sortida, utilitzeu l'opció –output-delimiter=delimitador .

cut -d ' ' -f 1,2 state.txt --output-delimiter='%'>

2024-02-16_13-18

Aquí l'ordre de tall canvia el delimitador (%) a la sortida estàndard entre els camps que s'especifica mitjançant l'opció -f .

Versió de visualització (--version>) Utilitzant l'ordre cut

-versió: Aquesta opció s'utilitza per mostrar la versió de tall que s'està executant al vostre sistema.

cut --version>

Mostra la versió de l'ordre de tall

Mostra la versió de l'ordre de tall

Com utilitzar la cua amb tubs (|) a l'ordre de tall

L'ordre cut es pot canalitzar amb moltes altres ordres d'unix. A l'exemple següent, la sortida del fitxer gat L'ordre es dóna com a entrada al fitxer tallar comanda amb -f opció per ordenar els noms d'estat procedents del fitxer state.txt en ordre invers.

cat state.txt | cut -d ' ' -f 1 | sort -r>
utilitzant la cua amb tub (|) a l'ordre de tall

utilitzant cua amb tub (|) a l'ordre de tall

També es pot canalitzar amb un o més filtres per a un processament addicional. Com en l'exemple següent, estem utilitzant l'ordre cat, head i cut i la sortida de la qual s'emmagatzema al nom de fitxer list.txt mitjançant la directiva(>).

cat state.txt | head -n 3 | cut -d ' ' -f 1>list.txt>
cat list.txt>

redirecció de la sortida en fitxers diferents

quantes ciutats EUA

redirecció de la sortida en un fitxer diferent

Preguntes freqüents sobre l'ordre cut a Linux - Preguntes freqüents

Com faig servir el cut> comanda per extreure columnes específiques d'un fitxer?

Exemple: per extreure la primera i la tercera columna d'un fitxer CSV anomenat ` data.csv`> .

cut -d',' -f1,3 data.csv>

Puc utilitzar cut> per extreure una sèrie de caràcters de cada línia?

Si, tu pots. Per extreure caràcters del 5 al 10 de cada línia d'un fitxer anomenattext.txt>.

cut -c5-10 text.txt>

Com puc canviar el delimitador que utilitza el cut> comandament?

Utilitzeu el ` -d`> opció seguida del caràcter delimitador. Per exemple, per utilitzar els dos punts (:>) com a delimitador.

cut -d':' -f1,3 data.txt>

És possible utilitzar-lo cut> per extreure camps basats en la posició del caràcter?

Sí, podeu especificar les posicions dels caràcters amb el ` -c`> opció. Per exemple, per extreure caràcters de l'1 al 5 i del 10 al 15 de cada línia.

cut -c1-5,10-15 data.txt>

Com ho faig servir cut> per extreure camps basats en un delimitador específic i emmagatzemar-los en un fitxer nou?

Per extreure camps separats per comes i emmagatzemar-los en un fitxer nou anomenat ` output.tx> t`>

cut -d',' -f1,3 data.csv>output.txt>

Conclusió

En aquest article hem parlat de ` cut`> comanda a Linux, que és una eina versàtil per extreure seccions específiques dels fitxers en funció de la posició del byte, el caràcter o el camp. Talla línies de text i emet les dades extretes. No s'especifica una opció amb elcut>L'ordre dóna lloc a un error. Es poden processar diversos fitxers, però la sortida no inclou els noms dels fitxers. Opcions com ara ` -b`> , ` -c`> , i ` -f`> permet l'extracció per byte, caràcter i camp, respectivament. El--complement>l'opció inverteix la selecció, imprimeix el que no està seleccionat i--output-delimiter>canvia el delimitador de sortida. L'ordre també inclou opcions per a la visualització de la versió i es pot utilitzar en combinació amb altres ordres a través de canonades per a un processament addicional.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L