Linux oferă cut
comandă pentru a elimina secțiuni din fiecare linie de ieșire în bash. cut
comandă oferă un mecanism pentru a filtra coloana extract / text dintr-un fișier sau de ieșire standard. Exemple detaliate pot fi găsite mai jos., Avem urmatoarele fișier text numit fruits.txt
apple 1 good grape 5 bad banana 2 not bad
cut OPTION... ...
Selectați Coloana
comanda Tăiat oferă posibilitatea de a selecta o coloana specificată în funcție de numărul de caractere pentru toate rândurile. Aici vom imprima toate rândurile 3 linii de caractere pe linie la consolă. Aceasta va imprima doar un singur caracter.,
$ cut -c3 fruits.txt
Selectați Coloana Pentru Gama de Caractere
În exemplul anterior, ne-au imprimat un singur caracter la terminal. De asemenea, putem imprima mai multe caractere pe consolă specificând intervalul de caractere ca mai jos. Putem vedea că indexul de caractere începe de la 1.,
$ cut -c1-6 fruits.txt
Selectați Coloana Folosind Poziția de Start
o Altă caracteristică utilă de tăiere este specificarea doar la poziția de start până la final.
$ cut -c3- fruits.txt
Selectați Coloana Folosind Poziția finală
putem intervalul de imprimare de la poziția specificată doar specificând poziția finală., Aceasta va prelua poziția de start ca 1
$ cut -c-3 fruits.txt
Selectați Singur Câmp
câmpul este o parte de text delimitat cu caractere specifice, cum ar fi space, tab, dublu virgulă, etc. Putem selecta text cu numere de câmp. În mod implicit, delimitatorul de câmp este fila. Textul nostru este deja prevăzut fila pentru delimitare. În acest exemplu, vom selecta 3. câmp.,
$ cut -f3 fruits.txt
Selectați mai Multe Domenii
Cum facem în caractere putem specifica, de asemenea, domeniul gama. Vom selecta numele și numărul de fructe cu următoarea comandă.
$ cut -f1-2 fruits.txt
exemplul următor selectează mai mult de un câmp de unul care nu folosesc intervale.,
$ cut -f1,2,3 fruits.txt
Ultimul Câmp
Una dintre cele mai populare utilizări ale cut
imprimare este ultimul câmp. Problema este că domeniul conta poate schimba în funcție de text și nu putem specifica ultimul câmp folosind doar cut
comandă. Următorul exemplu utilizează comanda rev
pentru a obține ultimul câmp.,
$ cat fruits.txt | rev | cut -f1 | rev
Selectați Câmpurile Includ Specificat de Caractere
în mod implicit cut
nu au capacitatea de a exclude linii în funcție de personaje, dar grep
poate fi folosit cu ușurință să pună în aplicare această caracteristică., Vom selecta rânduri conțin app
$ grep "app" fruits.txt | cut -f1-2
Selectați Câmpurile cu Excepția Specificat de Caractere
Putem inversa exemplul anterior și scoateți nedorite rânduri. Vom elimina liniile care conțin app
și apoi vom imprima coloane de la 1 la 2 .,
$ grep -v "app" fruits.txt | cut -f1-2
Specifica Delimitatorul
delimitatorul este folosit pentru a împărți domenii. În mod implicit, fila este utilizată ca delimitator. Dar poate fi specificat cu -d
opțiune ca mai jos. Urmând exemplul, folosim:
ca delimiter, deoarece fișierulpasswd
îl folosește. Apoi vrem doar să afișăm numele de utilizator care se află în câmpul 1.,
$ cut -d: -f1 /etc/passwd
Imprimare cu Excepția Domenii
după Cum vom vedea anterior domenii pot fi imprimate ca intervale prea. De asemenea, putem imprima cu excepția câmpurilor. Aceasta va imprima toate câmpurile de redenumire. Urmând exemplul, putem dori să tipărim toate câmpurile, cu excepția 2.
modificare Delimitator
Textul poate avea delimitatori în mod implicit. În unele situații, este posibil să dorim să schimbăm delimitatorul în timp ce imprimăm pe consolă., --output-delimiter
option can be used for this operation. The following example will change the tab delimiter to the comma.
$ cut -f1,2,3 --output-delimiter="," fruits.txt