Android

Linux taie comanda cu exemple

Cut Command in Linux

Cut Command in Linux

Cuprins:

Anonim

Există multe utilități disponibile în sistemele Linux și Unix care vă permit să prelucrați și să filtrați fișierele text. Cut este un utilitar pentru linia de comandă care vă permite să tăiați părți din linii din fișierele specificate sau datele conectate și să imprimați rezultatul la ieșirea standard. Poate fi folosit pentru a tăia părți ale unei linii în funcție de delimitator, poziția octeților și caracter.

În acest tutorial, vă vom arăta cum să utilizați comanda tăiere Linux prin exemple practice și explicații detaliate ale celor mai comune opțiuni de tăiere.

Cum se utilizează comanda Cut

Sintaxa pentru comanda cut este următoarea:

cut OPTION……

Când utilizați comanda tăiere, trebuie să utilizați una și numai una dintre următoarele opțiuni:

  • -f ( --fields=LIST ) - Selectați specificând un câmp, un set de câmpuri sau o gamă de câmpuri. Aceasta este opțiunea cea mai frecvent utilizată. -b ( --bytes=LIST ) - Selectați specificând un octet, un set de octeți sau o gamă de octeți. -c ( --characters=LIST ) - Selectați specificând un caracter, un set de caractere sau o gamă de caractere.

Alte opțiuni sunt:

  • -d ( --delimiter ) - Specificați un delimitator care va fi utilizat în loc de delimitatorul implicit „TAB”. - complement - completează selecția. Când utilizați această opțiune, tăierea va afișa toți octeții, caractere sau câmpuri, cu excepția celor selectate. -s ( --only-delimited ) - În mod implicit, tăierea va tipări orice linie care nu conține niciun caracter delimitator. Când utilizați această opțiune, tăierea nu va imprima linii care nu conțin delimitatori. --output-delimiter - implicit este să folosiți delimitatorul de intrare ca delimitator de ieșire. Această opțiune vă permite să specificați un șir de delimitator de ieșire diferit.

Comanda cut poate accepta zero sau mai multe nume FILE. Dacă nu este specificat niciun fișier sau când este FILE - , tăiat va citi intrarea standard.

Argumentul LIST transmis opțiunilor -f , -b și -c poate fi un număr întreg, mai multe întregi separate prin virgule, o gamă de valori întregi sau mai multe intervale întregi separate prin virgule. Fiecare gamă poate fi una dintre următoarele:

  • N cel de-al nouălea câmp, octet sau caracter, începând de la 1. N- din al nouălea câmp, octet sau caracter, până la sfârșitul liniei. NM de la câmpul, octetul sau caracterul Nth până la Mth. -M de la primul la câmpul, octetul sau caracterul Mth.

Cum se taie pe câmp

Comanda Cut este utilizată mai ales pentru a afișa câmpurile selectate din fiecare linie de fișiere sau de la intrarea standard. Când nu este specificat, delimitatorul implicit este „TAB”.

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

test.txt

245:789 4567 M:4540 Admin 01:10:1980 535:763 4987 M:3476 Sales 11:04:1978

Pentru a afișa primul și al 3-lea câmp, utilizați:

cut test.txt -f 1, 3

245:789 M:4540 535:763 M:3476

Sau dacă doriți să afișați de la câmpul 1 până la al 4-lea:

cut test.txt -f -4

245:789 4567 M:4540 Admin 535:763 4987 M:3476 Sales

Cum se taie pe baza unui delimitator

Pentru a tăia pe baza unui delimitator, folosiți opțiunea -d 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, introduceți:

cut test.txt -d ':' -f 1, 3

245:4540 Admin 01 535:3476 Sales 11

Puteți utiliza orice personaj unic ca delimitator. În exemplul următor, utilizăm caracterul spațiu ca delimitator și tipărim al doilea câmp:

echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2

ipsum

Cum se completează selecția

Pentru a completa lista de câmpuri de selecție folosiți --complement opțiunea completare. Aceasta va tipări numai câmpurile care nu sunt selectate cu opțiunea -f .

Următoarea comandă va tipări toate câmpurile, cu excepția primelor și a 3-a:

cut test.txt -f 1, 3 --complement

4567 Admin 01:10:1980 4987 Sales 11:04:1978

Cum se specifică un delimitator de ieșire

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

cut test.txt -f 1, 3 --output-delimiter='_'

245:789_M:4540 535:763_M:3476

Cum se taie după octeți și caractere

Înainte de a merge mai departe, să facem o distincție î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ă populare la nivel mondial, companiile tehnologice au început să introducă noi codări de caractere pentru diferite limbi și pentru limbi care au peste 256 de caractere, o simplă mapare de la 1 la 1 nu a fost posibilă. Acest lucru duce la diferite probleme, cum ar fi partajarea documentelor sau navigarea pe site-uri web și a fost nevoie de 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.

În următoarele exemple, folosim caracterul ü care ia 2 octeți.

Utilizați opțiunea -b ( --bytes ) pentru a decupa o secțiune a unei linii, specificând o poziție a octeților.

Selectați al cincilea octet:

echo 'drüberspringen' | cut -b 5

b

Selectați 5, 9 și 13 octeți:

echo 'drüberspringen' | cut -b 5, 9, 13

bpg

Selectați intervalul de la 1 la 5 octeți:

echo 'drüberspringen' | cut -b 1-5

drüb

La momentul scrierii acestui articol, versiunea de tăiere înglobată în nucleutilele GNU nu are opțiunea de a fi 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 utilizată de obicei în combinație cu alte comenzi prin conducte. Iată câteva exemple.

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

Ieșirea comenzii getent passwd este trecută la cut care imprimă primul fișier folosind : ca delimiter.

getent passwd | cut -d ':' -f1

Vizualizați 10 comenzi utilizate cel mai frecvent

În exemplul următor, tăierea este folosită pentru a dezbrăca primii 8 octeți de la fiecare linie de ieșire a comenzii history .

history | cut -c8- | sort | uniq -c | sort -rn | head

Concluzie

În acest moment, ar trebui să înțelegeți cum să utilizați comanda de tăiere Linux. Deși este foarte util, comanda cut are unele limitări. Nu acceptă specificarea mai multor caractere ca delimitator și nu suportă mai multe decimetri.

tăiat borna