Cut Command în Linux (Română)

Există multe utilități disponibile în sistemele Linux și Unix care vă permit să procesați și să filtrați fișiere text. cut este un utilitar de linie de comandă care vă permite să tăiați părți de linii din fișiere sau date canalizate specificate și să imprimați rezultatul la ieșirea standard. Poate fi folosit pentru a tăia părți ale unei linii după delimitator, poziția octetului și caracter.

În acest articol, vă vom arăta cum să utilizați cut comandă prin exemple practice și explicații detaliate ale celor mai frecvente opțiuni.

Cum se folosește comanda de tăiere #

Sintaxa pentru cut comanda este după cum urmează:

Opțiunile care indică cut dacă se utilizează un delimitator, o poziție de octet sau un caracter când tăiați porțiunile selectate, liniile sunt după cum urmează:

Puteți utiliza una și numai una dintre opțiunile enumerate mai sus.

Alte opțiuni sunt :

  • -d (--delimiter) – Specificați un delimitator care va fi utilizat în locul valorii implicite ” TAB ”delimitator.
  • --complement – Completați selecția. Când utilizați această opțiune cut afișează toți octeții, caracterele, sau câmpuri cu excepția se selectat.
  • -s (--only-delimited) – În mod implicit cut tipărește liniile care nu conțin caracter delimitator. Când se folosește această opțiune, cut nu tipărește liniile care nu conțin delimitatori.
  • --output-delimiter – Comportamentul implicit din cut este de a utiliza delimitatorul de intrare ca delimitator de ieșire. Această opțiune vă permite să specificați un șir diferit de delimitator de ieșire.

Comanda cut poate accepta zero sau mai multe nume FILE de intrare. Dacă nu este specificat FILE sau când FILE este -, cut va citi din intrarea standard.

Argumentul LIST transmis la -f , -b și -c opțiunile pot fi un număr întreg, mai multe numere întregi separate prin virgule, un interval de numere întregi sau mai multe game întregi separate prin virgule . Fiecare zonă poate fi una dintre următoarele:

  • N câmpul N, octet sau caracter, începând de la 1.
  • N- de la câmpul N, octet sau caracter, până la sfârșitul liniei.
  • N-M de la N la câmpul, octetul sau caracterul M.
  • -M de la primul la câmpul, octetul sau caracterul Mth.

Cum să tăiați după câmp #

Pentru a specifica câmpurile care ar trebui tăiate invocați comanda cu opțiunea -f. Când nu este specificat, delimitatorul implicit este „TAB”.

În exemplele de mai jos, vom folosi următorul fișier. Câmpurile sunt separate prin file.

test.txt

De exemplu, pentru a afișa primul și al treilea câmp, veți utiliza:

Sau dacă doriți să afișați de la câmpul 1 la 4:

Cum să tăiați pe baza unui delimitator #

Pentru a tăia pe baza unui delimitator, invocați comanda cu -d opțiune, urmată de delimitatorul pe care doriți să îl utilizați.

De exemplu, pentru a afișa câmpurile 1 și 3 folosind „:” ca delimitator, veți introduce:

Puteți utiliza orice caracter ca delimitator. În exemplul următor, folosim caracterul spațiu ca delimitator și imprimăm al doilea câmp:

Cum se completează selecția #

Pentru a completa lista câmpurilor de selecție, utilizați opțiunea --complement. Aceasta va imprima numai acele câmpuri care nu sunt selectate cu opțiunea -f.

Următoarea comandă va imprima toate câmpurile, cu excepția primului și al treilea:

Cum se specifică un delimitator de ieșire #

Pentru a specifica delimitatorul de ieșire utilizați --output-delimiter opțiune. De exemplu, pentru a seta delimitatorul de ieșire la _, veți utiliza:

Cum să tăiați după octeți și caractere #

Înainte de a merge mai departe, să facem distincția între octeți și caractere.

Un octet este de 8 biți și poate reprezenta 256 de valori diferite. Când a fost stabilit standardul ASCII, a luat în considerare toate literele, numerele și simbolurile necesare pentru a lucra cu limba engleză. Tabelul de caractere ASCII are 128 de caractere și fiecare caracter este reprezentat de un octet.Când computerele au început să devină accesibile la nivel global, companiile de tehnologie au început să introducă noi codificări de caractere pentru diferite limbi. Pentru limbile care au mai mult de 256 de caractere, nu a fost posibilă o simplă mapare de la 1 la 1. Acest lucru duce la diferite probleme, cum ar fi partajarea documentelor sau navigarea pe site-uri web, și a fost necesar un nou standard Unicode care să poată gestiona majoritatea sistemelor de scriere din lume. UTF-8 a fost creat pentru a rezolva aceste probleme. În UTF-8, nu toate caracterele sunt reprezentate cu 1 octet. Caracterele pot fi reprezentate cu 1 octet până la 4 octeți.

Opțiunea -b (--bytes) spune comenzii să tăiați secțiuni din fiecare linie specificată prin poziții date de octeți.

În exemplele următoare, folosim caracterul ü care ia 2 octeți.

Selectați al 5-lea octet:

Selectați al 5-lea, al 9-lea și al 13-lea octet:

Selectați intervalul de la 1 la 5 octet:

La momentul redactării acestui articol, versiunea cut inclusă în GNU coreutils nu are o opțiune de tăiat după caractere. Când utilizați opțiunea -c, cut se comportă la fel ca atunci când utilizați opțiunea -b.

Exemple de tăiere #

Comanda cut este de obicei utilizată în combinație cu alte comenzi prin canalizare. Iată câteva exemple:

Obțineți o listă cu toți utilizatorii #

Ieșirea comenzii getent passwd este trecută la cut, care tipărește primul câmp folosind : ca delimitator.

Ieșirea arată o listă cu toți utilizatorii de sistem.

Vizualizați cele 10 comenzi cele mai frecvent utilizate #

În exemplul următor, se utilizează cut pentru a elimina primii 8 octeți din fiecare linie a ieșirii comenzii history.

Concluzie #

cut este utilizată pentru a afișa câmpurile selectate din fiecare linie a fișierelor date sau a intrării standard.

Deși este foarte util, cut are unele limitări. Nu acceptă specificarea mai multor caractere ca delimitator și nu acceptă mai multe delimitatori.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *