Sistemele de operare bazate pe Linux oferă multe utilitare de procesare a textului pe linia de comandă pe care le puteți utiliza în rutina dvs. de zi cu zi. Comanda cut este un astfel de utilitar de manipulare a textului care utilizează delimitatori, octeți, câmpuri și coloane pentru a prelua un șir necesar dintr-o bază de date cu fișiere plat sau dintr-o linie.

Deoarece o bază de date cu fișiere plat nu are o relație structurală și înregistrările sunt separate cu ajutorul delimitatorilor, cut este un instrument ideal pentru extragerea caracterelor sau octeților de informații. Acest articol discută în detaliu comanda cut și demonstrează câteva exemple practice cu diferite opțiuni de filtrare pentru a începe să folosiți instrumentul.

Prezentare generală a comenzii tăiere

cut folosește următoarea sintaxă de bază:

a tăia 

Puteți, de asemenea, să îl conectați cu alte comenzi, după cum urmează:

ecou „șir_de_caractere” | a tăia 

Vă rugăm să rețineți că absența oricărei opțiuni generează o eroare. Iată câteva steaguri pe care le puteți folosi cu cut pentru a invoca diferitele sale funcții:

instagram viewer
Opțiune Descriere
-b Tăiere în funcție de poziția octetului
-c Tăieri după poziția caracterului
-d Extrage șirul folosind delimitatorul specificat cu opțiunea de câmp (-f).
-f Extrase după un câmp specificat
-s Extrase numai pentru delimitatori
--completa Tipăriți rezultatul, cu excepția câmpului pe care l-ați specificat
--output-delimiter Înlocuiți delimitatorul existent cu cel specificat

Iată câteva exemple de comandă de tăiere care vă vor ajuta să înțelegeți mai bine instrumentul și funcțiile sale.

1. Extrageți anumite caractere dintr-un șir

Folosește -b opțiunea de a prelua șiruri de caractere după numărul lor de octeți, după cum urmează:

ecou „Bună lume” | tăiat -b 1,2,3,5,8,9

Ieșire:

Heloor

De asemenea, puteți specifica o cale de fișier în loc de un șir:

cut -b 1,2,3,4,5 filename.txt

Sau puteți extrage caractere în funcție de poziția lor în text. Folosește -c opțiunea urmată de secvența/ordinea caracterelor pe care trebuie să le obțineți după cum urmează:

ecou „Bună lume” | tăiat -c 1,2,3,5,6,8,10,11

Ieșire:

Salut bătrâne

În mod similar, pentru a prelua câmpuri sau coloane dintr-o bază de date cu fișiere plat, utilizați comanda cut cu -f opțiunea flag:

cut -f 3 database.txt

2. Tăiați intervalul de octeți sau caractere

De asemenea, puteți utiliza -b marcați cu comanda cut pentru a extrage și tipări mai multe intervale de octeți, după cum urmează:

cut -b 1-7,16-23 database.txt

Puteți defini intervalul de preluare a caracterelor folosind -c steag după cum urmează:

cut -c 1-7,16-23 database.txt

3. Extrageți text din pozițiile de început sau de sfârșit

Folosește -cn- opțiunea de a extrage text de la al n-lea caracter până la sfârșitul rândului, unde n este indexul unui caracter din șir.

De exemplu, pentru a extrage șirul începând de la al șaselea caracter până la sfârșitul rândului:

cut -c6- database.txt

Sau utilizați următoarea comandă pentru a prelua de la început până la ultimul m caractere din fisier:

cut -c-8 database.txt

4. Tăiați mai multe câmpuri dintr-un fișier

De asemenea, puteți imprima mai multe câmpuri dintr-un fișier folosind -f steag.

cut -f 1,2 database.txt

Ieșire:

NUME VARSTA 
Ioan 20
Lisa 24
Jack 18
Bruce 23
Nancy 19

5. Extrageți text folosind delimitatori

Puteți folosi -d flag pentru a specifica delimitatorul cu -f opțiune. Delimitatorul specifică caracterul folosit pentru a separa câmpurile dintr-un fișier text.

De exemplu, pentru a extrage prima coloană a /etc/passwd fișier, utilizați două puncte (:) ca delimitator:

cut -d ‘:’ -f 1 /etc/passwd

În mod similar, valoarea delimitatorului din fluxul de text dat este un singur spațiu:

echo „1% din 1%” | cut -d ' ' -f 2,3

Ieșire:

1% din

6. Schimbați delimitatorul de ieșire pentru afișare

The --output-delimiter flag adaugă flexibilitate la ieșirea comenzii de tăiere. De exemplu, puteți utiliza steag pentru a afișa rezultatul într-o linie separată folosind $’\n’ valoare (linie nouă), după cum urmează:

grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\⁠n'

Ieșire:

alice
Alice
/bin/sh

Mai mult, puteți înlocui, de asemenea, un delimitator al unui fișier de intrare cu delimitatorul la alegere în ieșire, folosind --output-delimiter steag:

rădăcină grep /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@

Ieșire:

root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin

7. Tăiați câmpurile numai când o linie conține delimitator

Folosește -s flag pentru a extrage câmpuri numai atunci când liniile conțin un delimitator. De exemplu, următoarea comandă nu va prelua câmpul -f 1 cu excepția cazului în care are un delimitator de spațiu:

ecou „HelloWorld” | cut -d " " -f 1 -s

Dimpotrivă, comanda menționată mai jos va genera o ieșire, deoarece șirul conține delimitatorul specificat:

ecou „Bună lume” | cut -d " " -f 1 -s

Ieșire:

Buna ziua

În mod similar, puteți folosi orice alt caracter ca delimitator:

ecou „Bună ziua: Lumea” | cut -d ":" -f 2 -s

Ieșire:

Lume

8. Completați ieșirea comenzii

De asemenea, utilitarul de tăiere vă permite să imprimați toate câmpurile, cu excepția câmpului specificat. Folosește --completa opțiunea după cum urmează pentru a prelua toate detaliile contului de utilizator root, cu excepția coloanei a cincea:

grep „rădăcină” /etc/passwd | cut -d ':' --complement -s -f 5

Ieșire:

root: x: 0:0:/root:/bin/bash

În mod similar, în exemplul de mai jos, -f 1 parametrul trebuie să fie afișat Buna ziua text cu toate acestea, din cauza --completa opțiunea, imprimă doar restul.

ecou „Bună ziua întregii lumi” | cut -d " " -f 1 --complement

Ieșire:

către întreaga Lume

Cea mai bună parte este că puteți combina comanda cut cu ieșirea standard a altor comenzi Linux/Unix.

sed este un astfel de instrument de editare a textului pe care îl puteți folosi pentru a șterge, insera și înlocui textul. Îi puteți direcționa cu ușurință ieșirea către comanda cut.

În exemplul de mai jos, comanda grep ieșirea este transmisă la utilitarul sed care înlocuiește două puncte (:) cu o cratimă (-) și apoi, cut afișează câmpurile 1, 6 și 7 după cum urmează:

grep alice /etc/passwd | sed 's/:/-/g' | cut -d ' ' -f 1,5,7

Ieșire:

alice-x-1005-1008-Alice-/home/new/alice-/bin/sh

Lucrul cu text pe Linux Folosind cut

Comanda cut este un utilitar de linie de comandă flexibil și eficient pe care îl puteți utiliza în diferite cazuri de utilizare a manipulării textului. Utilizează operațiuni pentru a filtra textul din fișiere sau din datele de intrare standard. Utilitarul are, de asemenea, un avantaj care permite utilizatorilor să limiteze textul pe care doresc să-l afișeze și să adauge delimitatori la alegerea lor.

Cu toate acestea, această comandă are și unele limitări. Nu puteți folosi expresii regulate pentru a specifica un delimitator sau pentru a utiliza opțiuni de comandă de tăiere multiple concurente. Acest articol a acoperit exemple practice de nivel de bază până la avansat ale acestui utilitar pentru a ajuta începătorii să înțeleagă clar comenzile de manipulare a textului pe Linux.

Cele mai utile 5 comenzi pentru manipularea textului Linux

Doriți să vă îmbunătățiți jocul Linux și să aflați mai multe despre manipularea textului? Iată primele cinci instrumente de linie de comandă Linux pentru a vă începe călătoria.

Citiți în continuare

AcțiuneTweetE-mail
Subiecte asemănătoare
  • Linux
  • Comenzi Linux
  • Linux elementar
  • Linux Bash Shell
Despre autor
Rumaisa Niazi (10 articole publicate)

Rumaisa este un scriitor independent la MUO. Ea a purtat multe pălării, de la un matematician la un pasionat de securitate a informațiilor, iar acum lucrează ca analist SOC. Interesele ei includ citirea și scrierea despre noile tehnologii, distribuțiile Linux și orice despre securitatea informațiilor.

Mai multe de la Rumaisa Niazi

Aboneaza-te la newsletter-ul nostru

Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Click aici pentru a te abona