Comanda cut în linux este o comandă pentru tăierea secțiunilor din fiecare linie de fișiere și scrierea rezultatului în ieșirea standard. Poate fi folosit pentru a tăia părți dintr-o linie după poziție, caracter și câmp. Comanda de tăiere taie o linie și extrage textul. Este necesar să specificați o opțiune cu o comandă, altfel dă o eroare. Dacă sunt furnizate mai multe nume de fișier, datele din fiecare fișier nu sunt precedate de numele acestuia.
Cuprins
- Sintaxa comenzii cut
- Opțiuni disponibile în comanda cut
- Exemple practice de comandă tăiat
- Extrage octeți specifici (-b) folosind comanda cut
- Cut by Character (-c) Utilizând comanda cut
- Cut by Field (-f) Utilizând comanda cut
- Ieșire complement (–complement) Utilizând comanda cut
- Delimitator de ieșire (–output-delimiter) Utilizând comanda cut
- Afișează versiunea (–versiunea) Utilizând comanda cut
- Cum se folosește coada cu țevi (|) în comanda tăiat
- Întrebări frecvente privind comanda cut în Linux – Întrebări frecvente
Sintaxa comenzii cut
Sintaxa de bază acut>comanda este:
cut OPTION... [FILE]...>
Unde
`OPTION`> specifică comportamentul dorit
` FILE> `>reprezintă fișierul de intrare.
Notă : DacăFILE>nu este specificat, ` cut`> citește de la intrarea standard (stdin).
Opțiuni disponibile în comanda cut
Iată o listă cu opțiunile cele mai frecvent utilizate cu ` cut`> comanda:
| Opțiune | Descriere |
|---|---|
| -b, –bytes=LIST | Selectează numai octeții specificați în |
| -c, –caractere=LISTA | Selectează numai caracterele specificate în |
| -d, –delimiter=DIVIDE | Utilizări |
| -f, –câmpuri=LIS | Selectează numai câmpurile specificate în |
| -n | Nu împărțiți caractere pe mai mulți octeți (niciun efect decât dacă |
| -completa | Inversați selecția câmpurilor/caracterelor. Tipăriți câmpurile/caracterele neselectate. |
Exemple practice de comandă tăiat
Să luăm în considerare două fișiere cu nume stat.txt și capital.txt conține 5 nume ale statelor și, respectiv, capitalelor indiene.
$ cat state.txt Andhra Pradesh Arunachal Pradesh Assam Bihar Chhattisgarh>
Fără nicio opțiune specificată, afișează o eroare.
$ cut state.txt cut: you must specify a list of bytes, characters, or fields Try 'cut --help' for more information.>
Extrage octeți specifici (-b>) Folosind comanda cut
-b(octet): Pentru a extrage octeții specifici, trebuie să urmați opțiunea -b cu lista de numere de octeți separate prin virgulă. Intervalul de octeți poate fi specificat și folosind cratima (-). Este necesar să specificați lista de numere de octeți, altfel dă eroare.
File și spații înapoi sunt tratate ca un caracter de 1 octet.
Lista fără intervale :
cut -b 1,2,3 state.txt>

listă fără interval
Lista cu intervale:
cut -b 1-3,5-7 state.txt>

lista cu interval
Folosește un formular special pentru selectarea octeților de la începutul până la sfârșitul liniei:
Formă specială: Selectarea octeților de la începutul până la sfârșitul liniei
În aceasta, 1- indică de la primul octet până la sfârşitul octet al unei linii
cut -b 1- state.txt>

formă specială cu opțiunea -b
În aceasta, -3 indică de la primul octet la al treilea octet al unei linii
cut -b -3 state.txt>

opțiunea formă specială -b
Decupat după caracter (-c>) Folosind comanda cut
-c (coloană): Pentru a tăia după caracter, utilizați opțiunea -c. Aceasta selectează caracterele date opțiunii -c. Aceasta poate fi o listă de numere separate prin virgulă sau un interval de numere separate prin cratima (-).
File și spații înapoi sunt tratate ca un personaj. Este necesar să specificați lista de numere de caractere, altfel dă eroare cu această opțiune.
Sintaxă:
cut -c [(k)-(n)/(k),(n)/(n)] filename>
Aici, k denotă poziţia de început a personajului şi n denotă poziția finală a caracterului în fiecare linie, dacă k și n sunt separate prin - altfel sunt doar poziția caracterului din fiecare linie din fișierul luat ca intrare.
Extrage caractere specifice:
cut -c 2,5,7 state.txt>

Extrage caractere specifice
Deasupra comanda cut tipărește al doilea, al cincilea și al șaptelea caracter din fiecare linie a fișierului.
Extrage primele șapte caractere:
cut -c 1-7 state.txt>

Extrage primele șapte caractere
Comanda de mai sus a tăiat imprimă primele șapte caractere ale fiecărei linii din fișier. Cut folosește o formă specială pentru selectarea caracterelor de la începutul până la sfârșitul rândului:
Formă specială: Selectarea caracterelor de la începutul până la sfârșitul rândului
cut -c 1- state.txt>

selectând caractere de la începutul până la sfârșitul rândului folosind opțiunea -c
Comanda de mai sus se tipărește de la primul caracter până la sfârșit. Aici la comandă este specificată doar poziția de pornire, iar poziția de sfârșit este omisă.
cut -c -5 state.txt>

selectând caractere de la începutul până la sfârșitul rândului folosind opțiunea -c
Comanda de mai sus imprimă poziția de pornire la al cincilea caracter. Aici poziția de pornire este omisă și este specificată poziția de sfârșit.
Tăiat după câmp (-f>) Folosind comanda cut
-f (câmp): -c opțiunea este utilă pentru linii cu lungime fixă. Majoritatea fișierelor Unix nu au linii cu lungime fixă. Pentru a extrage informațiile utile, trebuie să tăiați după câmpuri și nu pe coloane. Lista câmpurilor cu numărul specificat trebuie să fie separate prin virgulă. Intervalele nu sunt descrise cu opțiunea -f . a tăia utilizări fila ca delimitator de câmp implicit, dar poate funcționa și cu alt delimitator prin utilizarea -d opțiune.
Notă: Spațiul nu este considerat delimitator în UNIX.
Sintaxă:
cut -d 'delimiter' -f (field number) file.txt>
Extrage primul câmp:
Ca în dosar stat.txt câmpurile sunt separate prin spațiu dacă opțiunea -d nu este folosită, atunci se tipărește întreaga linie:
cut -f 1 state.txt>

Extrageți primul câmp folosind opțiunea -f
Dacă ` -d` este folosită opțiunea, atunci a considerat spațiu ca separator sau delimitator de câmp:
cut -d ' ' -f 1 state.txt>

spațiu ca separator sau delimitator de câmp
Extrageți câmpurile de la 1 la 4:
Comanda imprimă câmpul de la prima până la a patra din fiecare linie din fișier.
cut -d ' ' -f 1-4 state.txt>

Comandă imprimă câmpul de la primul la al patrulea
Ieșire complement (--complement>) Folosind comanda cut
-completa: După cum sugerează și numele, completează rezultatul. Această opțiune poate fi utilizată în combinație cu alte opțiuni fie cu -f sau cu -c .
cut --complement -d ' ' -f 1 state.txt>

-completa
cut --complement -c 5 state.txt>

-completa
Delimitator de ieșire (--output-delimiter>) Folosind comanda cut
-delimitator-ieșire: În mod implicit, delimitatorul de ieșire este același cu delimitătorul de intrare pe care îl specificăm în tăiere -d opțiune. Pentru a modifica delimitatorul de ieșire, utilizați opțiunea –output-delimiter=delimitator .
cut -d ' ' -f 1,2 state.txt --output-delimiter='%'>

Aici comanda cut modifică delimitatorul (%) în ieșirea standard între câmpurile, care este specificată folosind opțiunea -f.
Versiunea de afișare (--version>) Folosind comanda cut
-versiune: Această opțiune este folosită pentru a afișa versiunea de tăiere care rulează în prezent pe sistemul dumneavoastră.
cut --version>

afișați versiunea comenzii de tăiere
Cum se folosește coada cu țevi (|) în comanda tăiat
Comanda cut poate fi conectată cu multe alte comenzi ale Unix. În următorul exemplu de ieșire a lui pisică comanda este dată ca intrare la a tăia comanda cu -f opțiunea de a sorta numele statelor care provin din fișierul state.txt în ordine inversă.
cat state.txt | cut -d ' ' -f 1 | sort -r>

folosind coada cu teava (|) in comanda de taiere
De asemenea, poate fi racordat cu unul sau mai multe filtre pentru procesare suplimentară. Ca și în exemplul următor, folosim comanda cat, head și cut și a cărei ieșire este stocată în numele fișierului list.txt folosind directiva(>).
cat state.txt | head -n 3 | cut -d ' ' -f 1>list.txt>
cat list.txt>

port de ascultare
redirecționarea ieșirii în fișiere diferite
Întrebări frecvente privind comanda cut în Linux – Întrebări frecvente
Cum folosesc cut> comandă pentru a extrage anumite coloane dintr-un fișier?
Exemplu: pentru a extrage prima și a treia coloană dintr-un fișier CSV numit ` data.csv`> .
cut -d',' -f1,3 data.csv>
Pot folosi cut> pentru a extrage o serie de caractere din fiecare linie?
Da, poti. Pentru a extrage caracterele de la 5 la 10 din fiecare linie a unui fișier numittext.txt>.
cut -c5-10 text.txt>
Cum pot schimba delimitatorul folosit de cut> comanda?
Folosiți ` -d`> opțiune urmată de caracterul delimitator. De exemplu, pentru a folosi două puncte (:>) ca delimitator.
cut -d':' -f1,3 data.txt>
Este posibil de utilizat cut> pentru a extrage câmpuri în funcție de poziția caracterului?
Da, puteți specifica pozițiile caracterelor cu ` -c`> opțiune. De exemplu, pentru a extrage caracterele de la 1 la 5 și de la 10 la 15 din fiecare rând.
cut -c1-5,10-15 data.txt>
Cum folosesc cut> pentru a extrage câmpuri pe baza unui anumit delimitator și a le stoca într-un fișier nou?
Pentru a extrage câmpuri separate prin virgule și a le stoca într-un fișier nou numit ` output.tx> t`>
cut -d',' -f1,3 data.csv>output.txt>
Concluzie
În acest articol am discutat despre ` cut`> comandă în Linux, care este un instrument versatil pentru extragerea anumitor secțiuni din fișiere pe baza poziției octeților, caracterului sau câmpului. Se taie linii de text și scoate datele extrase. Eșecul de a specifica o opțiune cucut>comanda duce la o eroare. Pot fi procesate mai multe fișiere, dar rezultatul nu include numele fișierelor. Opțiuni precum ` -b`> , ` -c`> , și ` -f`> permite extragerea după octet, caracter și, respectiv, câmp. The--complement>opțiunea inversează selecția, imprimă ceea ce nu este selectat și--output-delimiter>modifică delimitatorul de ieșire. Comanda include, de asemenea, opțiuni pentru afișarea versiunii și poate fi utilizată în combinație cu alte comenzi prin conducte pentru procesare suplimentară.
?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L