Comanda tăiere este utilizată pentru tăierea secțiunilor fluxului de intrare standard sau a fișierelor de date utilizând utilitarul de tăiere Unix. Face parte din pachetul GNU Coreutils și din sistemul de bază BSD, prin urmare, este disponibil în mod implicit pe fiecare sistem Linux și BSD. Comanda tăiere în Unix permite tăierea secțiunilor bazate pe poziții de octet, caractere sau câmpuri separate printr-un delimitator, cum ar fi caracterele „-” sau „:” Ghidul nostru oferă o introducere practică la comanda de tăiere Linux folosind un set de exemple bine curatat. Încercați-le alături de citirea acestui post pentru a obține experiență directă.

Exemple de comandă Linux Cut în Unix

Experții noștri au încercat din răsputeri să facă acest ghid este prietenos cu noii utilizatori Linux. În plus, va servi drept punct de referință la îndemână atât pentru utilizatorii experimentați. Încurajăm cititorii să încerce comenzile pe măsură ce le explorează. Vom demonstra aceste comenzi Linux Cut folosind atât intrarea standard, cât și un fișier de referință. Puteți copia-lipi conținutul fișierului de aici și îl puteți crea în sistemul dvs.

Fișier de referință utilizat în scopuri demonstrative

Folosim un fișier text numit test.txt care se află în directorul de start. Fișierul conține cinci rânduri sau linii, toate conținând patru coloane. Fiecare rând include numele unei țări, capitala, moneda și populația ei; toate separate prin colonul delimitator. Creați acest fișier în sistemul dvs. și completați-l cu conținutul de mai jos.

Sintaxa comenzii Cut în Unix

Comanda de tăiere Linux are sintaxa de mai jos.

cut OPTION... ...

Pentru a tăia textul din fluxul de intrare, vom ‘ Voi folosi comanda echo și pipă (|) ieșirea sa la comanda de tăiere. Aceeași metodă poate fi utilizată pentru furnizarea intrărilor de tăiere de la cat.

Tăierea textului pe baza pozițiilor de octeți

Opțiunea b oferită de utilitarul de tăiere ne permite să tăiem secțiuni ale unui text- pe baza pozițiilor lor de octeți. În acest scop, trebuie să folosim comanda de tăiere cu steagul -b urmat de numerele de octeți.

1. Tăiați doar un singur octet din fluxul de intrare

$ echo "cutting text from input" | cut -b 1

Comanda de mai sus răsună șirul „tăierea textului de la intrare” la ieșirea standard și îl conductează ca intrare la comanda de tăiere. Comanda de tăiere va tăia doar primul octet (c) din acest șir, deoarece doar 1 a fost furnizat cu steagul -b.

2. Tăiați octeți specifici din fluxul de intrare

$ echo "cutting text from input" | cut -b 1,3

Această comandă va tăia numai primul și al treilea octet al șirului „tăierea textului din intrare” și va afișa „ct” ca ieșire. Încercați-l cu câteva poziții diferite de octeți.

3. Tăiați gama de octeți din fluxul de intrare

$ echo "cutting text from input" | cut -b 1-12

Comanda de mai sus va tăia intervalul de octeți 1-12 din șirul dat și va imprima „tăiere text” pe ieșirea standard. Furnizarea intervalelor de octeți care sunt în afara ocupării șirului va avea ca rezultat un mesaj care afișează „tăiat: octet nevalid sau interval de caractere”.

4. Tăiați doar un singur octet din fișierul text

$ cut -b 1 test.txt

Această comandă va afișa numai primii octeți din fiecare dintre cele cinci rânduri din fișierul test.txt. Este echivalent cu comanda $ cat test.txt | cut -b 1

5. Tăiați octeți specifici din fișierul text

$ cut -b 1,3 test.txt

Comanda de mai sus tăie doar primul și al treilea octet al fiecărui rând. poate specifica orice număr de octeți, atâta timp cât se încadrează în intervalul de octeți disponibil.

6. Tăiați gama de octeți din fișierul text

$ cut -b 1-12 test.txt

Această comandă va afișa primul până la doisprezecea octeți din fiecare rând din fișierul test.txt. Ar trebui să observați similaritatea funcționalității pe care această comandă o are cu a treia comandă.

7. Tăiați primul 7 octeți în ordine alfabetică

$ cut -b 1-7 test.txt | sort

Putem furniza ieșirea comenzii tăiere ca intrare la comanda sortare pentru afișarea primilor șapte octeți din fiecare rând în ordine alfabetică. Pentru sortarea alfabetică, comanda sort nu necesită opțiuni.

8. Tăiați primii 7 octeți în ordine inversă

$ cut -b 1-7 test.txt | sort -r

Această comandă de tăiere va tăia primii 7 octeți din fiecare rând și le va reda în ordinea inversă. Uită-te cum este alimentată ieșirea comenzii de tăiere către comanda de sortare folosind o conductă.

9. Tăiați de la al cincilea octet până la sfârșitul fluxului de intrare

$ echo "cutting text from input" | cut -b 5-

Comanda de tăiere de mai sus va tăia textul de la al cincilea octet până la sfârșitul șirului. Această comandă va fi utilă atunci când trebuie să tăiați dintr-o poziție specificată de octet până la sfârșitul fluxului de intrare. Pur și simplu schimbați valoarea semnalizatorului b în timp ce păstrați finalul activat.

10. Tăiați de la al cincilea octet până la sfârșitul fișierului

$ cut -b 5- test.txt

Această comandă va începe să taie fiecare dintre cele cinci rânduri de test.txt din poziția de cinci octeți și terminați numai după ce fiecare rând se termină. Cratima finală (-) este obligatorie pentru această operațiune.

11. Tăiați o cantitate specificată de octeți începând cu primul

$ echo "cutting text from input" | cut -b -5

Această comandă va tăia primii cinci octeți ai șirului de intrare. Puteți tăia de la octetul de pornire la orice altă poziție de octet, doar înlocuind valoarea steagului b. Nu uitați să adăugați cratima precedentă (-) altfel ieșirea nu va fi așa cum era de așteptat.

12. Tăiați de la primul octet la o poziție specificată din fișier

$ cut -b -5 test.txt

Comanda de mai sus va tăia doar primii cinci octeți din fiecare linie din fișierul nostru text. Observați cum se folosește cratima (-) pentru comenzile 9-12 din această listă.

Tăiați textul pe baza caracterelor

Comanda de tăiere din Unix permite utilizatorilor să taie o secțiune de text bazată pe caractere. Când gestionați sarcini mari de procesare a fișierelor, va trebui să faceți acest lucru destul de des. Încercați-le și observați asemănările dintre tăierea bazată pe caractere și tăierea bazată pe octeți.

13. Tăiați doar un singur caracter din fluxul de intrare

$ echo "cutting text from input" | cut -c 1

Comanda de mai sus tăie primul caracter de la intrarea standard și îl afișează în terminal. În acest caz, este „c”. Schimbați șirul cu ceva diferit pentru a înțelege clar acest lucru.

14. Tăiați caractere specifice din fluxul de intrare

$ echo "cutting text from input" | cut -c 1,3

Această comandă va tăia numai primul și al treilea caracter al șirului de intrare și le va afișa. Puteți încerca să tăiați alte caractere, dar nu uitați să nu depășiți limita de caractere a șirului dvs.

15. Tăiați gama de caractere din fluxul de intrare

$ echo "cutting text from input" | cut -c 1-12

În cazul acestei comenzi, „tăiați” va tăia caractere variind de la prima poziție până la a douăsprezecea poziție. rezultatul va fi „tăierea textului”. Rețineți asemănările dintre această comandă de tăiere Linux și a treia comandă.

16. Tăiați doar un singur caracter din fișierul text

$ cut -c 1 test.txt

Această comandă va afișa numai primele caractere ale fiecăruia dintre cele cinci rânduri ale fișierului nostru test.txt. Este echivalentă cu comanda $ cat test.txt | cut -c 1 și oferă același rezultat așa cum am obține atunci când folosim semnalizatorul de octeți.

17. Tăiați caractere specifice din fișierul text

$ cut -c 7,10 test.txt

Comanda de mai sus reduce numai al șaptelea și al zecelea caracter al fiecărui cinci rânduri. Puteți specifica orice poziție a caracterelor, atâta timp cât acestea se încadrează în intervalul de caractere disponibile.

18. Tăiați gama de caractere din fișierul text

Această comandă va afișa primele până la douăsprezecea caractere din fiecare linie din fișierul test.txt. Comanda de tăiere în Unix se comportă la fel atunci când tăiați o gamă de caractere și o gamă de octeți.

19. Tăiați primele 5 caractere în ordine alfabetică

$ cut -c 1-5 test.txt | sort

Puteți furniza ieșirea comenzii de tăiere ca intrare la comanda de sortare pentru tăierea primilor cinci octeți de fiecare rând alfabetic. Comanda de sortare nu necesită opțiuni atunci când sortați alfabetic.

20. Tăiați primele 5 caractere în ordine inversă

$ cut -c 1-5 test.txt | sort -r

Această comandă de tăiere va tăia primele cinci caractere din fiecare rând și le va afișa după sortare în sens invers. Uită-te cum este alimentată ieșirea comenzii de tăiere către comanda de sortare folosind o țeavă. Tăiați de la al cincilea caracter până la sfârșitul fluxului de intrare

$ echo "cutting text from input" | cut -c 5-

Comanda de tăiere de mai sus va tăia textul începând de la al cincilea octet până la sfârșitul șirului . Poate fi benefic atunci când trebuie să tăiați dintr-o poziție specificată a caracterelor până la sfârșitul fluxului de intrare. Pur și simplu schimbați valoarea după b, păstrând în același timp.

22. Tăiați de la al cincilea caracter până la sfârșitul fișierului

$ cut -c 5- test.txt

Această comandă va începe tăierea fiecăruia dintre cele cinci rânduri ale fișierului test.txt din al cincilea caracter poziție și se va termina după atingerea sfârșitului fiecărei linii. Cratima finală (-) este obligatorie pentru acest tip de operație.

23. Tăiați o cantitate specificată de caractere începând cu prima poziție

$ echo "cutting text from input" | cut -c -5

Această comandă va tăia doar primele cinci poziții de caractere ale intrării noastre. Puteți tăia de la caracterul inițial la orice altă poziție de personaj, doar înlocuind valoarea -c. Nu uitați să adăugați cratima precedentă (-) altfel, ieșirea nu va fi la fel cum vă așteptați.

24. Tăiați de la primul caracter la o poziție specificată din fișier

$ cut -c -5 test.txt

Această comandă de tăiere din Unix va tăia primele cinci caractere ale fiecărei linii din testul fișierului. txt. Observați cum se folosește cratima (-) pentru comenzile 21-24 din această listă.

Tăiați textul din coloane folosind câmpuri și delimitatori

Comanda de tăiere permite utilizatorilor să taie foarte mult secțiunile unui text uşor. Pentru aceasta, trebuie să folosim atât steagul d cât și f de tăiere. Steagul d reprezintă delimitatori și f pentru câmpuri. Delimitatorii sunt caractere speciale care separă secțiunea unui text de altele. Exemplele obișnuite includ ‘-‘, ‘:’ și „” (spațiu). Fișierul de referință pe care îl folosim are ca separator ‘:’.

25. Tăiați prima secțiune a fluxului de intrare

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1

Comanda de tăiere de mai sus va tăia prima secțiune a textului („Să” în acest caz) din fluxul de intrare. Rețineți că valoarea steagului delimitator -d este un spațiu unic. Încercați-l cu text delimitat de două puncte și vedeți ce se întâmplă pentru dvs.

26. Tăiați prima secțiune a unui fișier

$ cut -d ":" -f 1 test.txt

Această comandă va returna primele coloane ale fiecărui rând din fișierul nostru de referință și va imprima numele tuturor celor cinci țări. Valoarea furnizată steagului delimitator a fost un punct, deoarece astfel fișierul nostru separă coloanele.

27. Decupați secțiuni specifice ale fluxului de intrare

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,2,3

Aici am instruit tăierea să afișeze numai primele trei câmpuri ale șirului de intrare dat. Se face folosind o matrice de poziții de câmp separate prin virgulă. Ieșirea acestei comenzi va fi „Să tăiem asta”.

Fișier

$ cut -d ":" -f 1,2,3 test.txt

Acest co mmand va oferi, de asemenea, același tip de ieșire ca și comanda anterioară. Aici, tăiatul funcționează doar pe un fișier în locul intrării standard, asta este tot. Ar trebui să arate numele, capitalul și moneda fiecărei țări de pe listă. Cu toate acestea, observați diferența dintre delimitatorii lor (spațiu vs. colon).

29. Tăiați gama de câmpuri din fluxul de intrare

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1-5

Comanda de mai sus va tăia primele cinci câmpuri ale șirului și îl va afișa în terminal. Apostrofele sunt necesare atunci când spațiul este utilizat ca delimitator între mai multe câmpuri.

30. Tăiați intervalul de câmpuri dintr-un fișier

$ cut -d ":" -f 1-3 test.txt

Această comandă de tăiere va tăia fiecare dintre primele trei coloane ale fișierului text și o va afișa ca ieșire. Ar trebui să afișeze același rezultat ca cel furnizat de comanda precedentă celei anterioare. Apostrofele nu sunt obligatorii pentru caractere precum – sau:.

31. Tăiați fiecare intrare dintr-un câmp specific și listați-le alfabetic

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort

Să presupunem că trebuie să aflați numele celor cinci țări din lista noastră în ordine alfabetică, poate utiliza comanda de mai sus pentru a face acest lucru. Acesta va lista țările ordonate alfabetic. O înlocuire a valorii steagului f vă va permite să faceți acest lucru și în alte câmpuri.

32. Tăiați fiecare intrare dintr-un câmp și listați-le în ordine alfabetică inversă

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort -r

Această comandă face aceeași operație ca cea de mai sus, doar sortează intrările într-un revers manieră, atât. Ieșirea este modificată aici datorită semnalizatorului -r trecut la sortare.

33. Tăiați de la un câmp fix la sfârșitul fluxului de intrare

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 2-

Această comandă de tăiere va tăia începând de la al doilea câmp până la sfârșitul șirului. Poate fi benefic atunci când trebuie să tăiați dintr-o poziție specificată până la sfârșitul intrării. Puteți modifica valoarea -f păstrând în același timp urmărirea – pentru tăierea din diferite câmpuri.

34. Tăiați dintr-un câmp fix până la sfârșitul unui fișier

$ cut -d ":" -f 2- test.txt

Atunci când este utilizată astfel, comanda de tăiere va începe tăierea din câmpul specificat și va merge până la sfârșit din fiecare linie. În acest caz, va imprima capitalul, moneda și populația fiecăreia dintre cele cinci țări de pe listă.

35. Tăiați un număr specificat de coloane începând de la prima

$ echo "Let"s cut this input stream section by section" | cut -d " " -f -5

Această comandă va tăia doar primele cinci câmpuri ale intrării date. Puteți tăia de la coloana de pornire la orice altă poziție de coloană doar înlocuind valoarea -f. Cu toate acestea, trebuie să adăugați cratima precedentă (-) altfel rezultatul nu se va potrivi cu așteptările dvs.

36. Tăiați câteva coloane specificate ale unui fișier începând cu primul

$ cut -d ":" -f -2 test.txt

Această comandă de tăiere Linux va începe să taie fișierul test.txt din prima coloană și se va termina după a terminat de tăiat a doua comandă. Deci, ieșirea acestei comenzi va afișa pur și simplu numele fiecărei țări și capitalele respective.

37. Tăiați mai multe câmpuri de fișiere CSV

$ cut -d "," -f 1,2 file.csv

Comanda de tăiere se va dovedi adesea un instrument viabil atunci când lucrați cu documente CSV masive. Comanda de mai sus, de exemplu, va tăia primele două coloane ale unui fișier CSV separat prin virgule numit file.csv.

38.Tăiați câmpuri specifice fișierelor CSV și sortați-le în ordine inversă

$ cut -d "," -f 1,3,5 file.csv | sort -r

Comanda de mai sus va tăia prima, a treia și a cincea coloană ale unui CSV separat prin virgulă fișier numit file.csv și afișează ieșirea în ordine inversă.

Unele comenzi de tăiere diverse pentru experți Linux

Comanda de tăiere poate fi utilizată pentru procesarea avansată a fișierelor utilizându-l cu filtre și alte comenzi robuste Linux. Mai jos, vom parcurge câteva astfel de comenzi care vă pot aduce beneficii pe termen lung.

39. Inspectați fișierul passwd folosind comanda Cut

$ cut -d ":" -f1 /etc/passwd

Fișierul passwd stocat în / etc în majoritatea sistemelor conține informații foarte sensibile despre sistem și utilizatorii săi. Puteți inspecta acest fișier rapid folosind comanda de tăiere. Delimitatorul „:” este utilizat deoarece coloanele acestui fișier sunt separate folosind acesta. Schimbați valoarea lui -f pentru a monitoriza diferite câmpuri.

40. Tăiați câmpuri specifice și afișați numai intrările unice

$ cut -d ":" -f 3 test.txt | uniq -u

Această comandă de tăiere din Linux va tăia a treia coloană a fișierului test.txt și va afișa numai intrările unice . Deci, pentru acest fișier, ieșirea va conține doar trei valute – și anume Euro, Lira și Yen.

41. Tăiați toți octeții fluxului de intrare, cu excepția celor specificate

$ echo "Let"s cut this input stream section by section" | cut -b 1,3,5,7 --complement

Această comandă de tăiere va tăia toate caracterele șirului de intrare dat, cu excepția celor furnizate la -b. Deci, pozițiile de octet prima, a treia, a cincea și a șaptea vor fi omise din ieșire.

42. Tăiați toți octeții unui fișier, cu excepția celor specificate

$ cut -b 2,4,6 test.txt --complement

Atunci când este utilizată în acest mod, comanda de tăiere va tăia toți octeții fișierului test.txt, cu excepția cel menționat în comandă. Astfel, ieșirea nu va conține al doilea, al patrulea și al șaselea octet al fiecărei linii.

43. Tăiați toate caracterele fluxului de intrare, cu excepția celor specificate

$ echo "Let"s cut this input stream section by section" | cut -c 1,3,5,7 --complement

Această comandă se abține de la tăierea primelor, a treia, a cincea și a șaptea caractere ale șirului de intrare și în schimb taie toate celelalte personaje, cu excepția acestor patru.

44. Tăiați toate caracterele unui fișier, cu excepția celor specificate

$ cut -c 2,4,6 test.txt --complement

În cazul acestei comenzi, ieșirea va conține toate caracterele fișierelor test.txt, cu excepția celor menționat. Deci, caracterele al doilea, al patrulea și al șaselea nu vor fi afișate.

45. Tăiați toate secțiunile de intrare, cu excepția celor specificate

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,3,5 --complement

Comanda de mai sus va scoate șirul „secțiune de intrare secțiune cu secțiune”. Deci, va afișa toate secțiunile de intrare fără cele menționate după semnalizarea câmpului.

46. Tăiați toate coloanele unui fișier, cu excepția celor specificate

$ cut -d ":" -f 2,3 test.txt --complement

Această comandă va tăia numai prima și ultima coloană a fișierului test.txt. Deci, puteți deselecta cu ușurință unele câmpuri atunci când procesați documente tabulare mari utilizând semnalizatorul complement.

47. Tăiați o secțiune de intrare și inversați-le caracteristic

$ echo "Let"s cut this input stream section by section" | rev | cut -d " " -f 1,3

Comanda Linux de mai sus va tăia prima și a treia secțiune a intrării și le va inversa caracteristic. Observați, modul în care ieșirea unei comenzi este alimentată ca intrare către alte comenzi.

48. Tăiați coloane specifice într-un fișier și inversați-le în funcție de caracter

$ cut -d ":" -f 1,3 test.txt | rev

Această comandă va tăia doar câmpurile specificate ale fișierului test.txt și va afișa rezultatul într-un caracter mod invers.

49. Modificați delimitatorul de ieșire al comenzii Cut

$ echo "A,comma,separated,list,for,demonstration,purposes" | cut -d "," -f 1- --output-delimiter=" "

Cut ne permite să modificăm delimitatorul de ieșire atunci când afișăm rezultatul. Comanda de mai sus tăie toate secțiunile listei separate prin virgulă, dar înlocuiește virgulele cu spații când se afișează rezultatul.

50. Exemplu de comandă Cut + Sed cu Delimitator Tab

$ sed "s/:/\t/g" test.txt | cut -f 1-4

Ultima comandă de tăiere a listei noastre utilizează puternicul puternic utilitar sed pentru a înlocui punctele din fișierul nostru cu file . Puteți înlocui \ t cu alte caractere precum – sau; pentru a trece la un delimitator de ieșire la alegere.

Ending Thoughts

Comanda de tăiere în Unix este un instrument versatil care poate ajuta la numeroase beneficii pentru utilizatorii care au nevoie să proceseze frecvent fișiere mari. Am prezentat cele mai bune 50 de comenzi de tăiere Linux pentru a vă ajuta să vă familiarizați cu acest utilitar fantastic. Ar trebui să le încercați individual și să modificați diferitele opțiuni disponibile. Acest lucru vă va ajuta să înțelegeți diferitele variații ale comenzii de tăiere în profunzime. Sperăm că am reușit în încercarea noastră de a vă ajuta cât mai mult posibil. Rămâneți cu noi pentru mai multe ghiduri viitoare despre comenzile utile Linux.

Lasă un răspuns

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