10 Exemple practice de comenzi de tăiere Linux pentru a selecta coloane de fișiere
Tăierea comenzii Linux este utilizată pentru procesarea textului. Puteți utiliza această comandă pentru a extrage porțiuni de text dintr-un fișier selectând coloane.
Acest tutorial oferă câteva exemple practice de comandă de tăiere pe care le puteți utiliza în activitățile zilnice din linia de comandă.
Pentru majoritatea exemplului, vom folosi următorul fișier de testare.
$ cat test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Selectați coloana de caractere
Pentru a extrage doar o coloană dorită dintr-un fișier utilizați opțiunea -c. Următorul exemplu afișează al doilea caracter din fiecare linie a unui fișier test.txt
$ cut -c2 test.txtaps
După cum se vede mai sus, caracterele a, p, s sunt al doilea caracter din fiecare linie a fișierului test.txt.
Selectați Coloana de caractere folosind Range
Gama de caractere poate fi extrasă și dintr-un fișier specificând poziția de început și de sfârșit delimitată cu -. Următorul exemplu extrage primele 3 caractere ale fiecărei linii dintr-un fișier numit test.txt
$ cut -c1-3 test.txtcatcpls
Selectați Coloana de caractere folosind fie Start, fie End Position
Poziția inițială sau finală pot fi trecute pentru comanda de tăiere cu opțiunea -c.
Următoarele specifică doar poziția de început înainte de ‘-‘. Acest exemplu extrage din al treilea caracter până la sfârșitul fiecărei linii din fișierul test.txt.
$ cut -c3- test.txtt command for file oriented operations. command for copy files or directories. command to list out files and directories with its attributes.
Următorul specifică doar poziția finală după ‘-‘. Acest exemplu extrage 8 caractere de la începutul fiecărei linii din fișierul test.txt.
$ cut -c-8 test.txtcat commcp commals comma
Întreaga linie va fi tipărită atunci când nu specificați un număr înainte sau după „-” așa cum se arată mai jos.
$ cut -c- test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Selectați un câmp specific dintr-un fișier
În loc să selectați x numărul de caractere, dacă doriți să extrageți un câmp întreg, puteți combina opțiunea -f și -d. Opțiunea -f specifică câmpul pe care doriți să îl extrageți, iar opțiunea -d specifică care este delimitatorul de câmp care este utilizat în fișierul de intrare.
Următorul exemplu afișează doar primul câmp din fiecare linie din / etc / passwd folosind delimitatorul de câmp: (colon). În acest caz, primul câmp este numele de utilizator. Fișierul
$ cut -d":" -f1 /etc/passwdrootdaemonbinsyssyncgamesbala
Selectați câmpuri multiple dintr-un fișier
De asemenea, puteți extrage mai multe câmpuri dintr-un fișier sau dintr-un fișier standard. Exemplul de mai jos afișează numele de utilizator și directorul principal al utilizatorilor care au shell-ul de conectare ca „/ bin / bash”.
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1,6root:/rootbala:/home/bala
Pentru a afișa intervalul de câmpuri, specificați câmpul de pornire și câmpul final așa cum se arată mai jos. În acest exemplu, selectăm câmpul 1 până la 4, 6 și 7
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1-4,6,7root:x:0:0:/root:/bin/bashbala:x:1000:1000:/home/bala:/bin/bash
Selectați câmpurile numai atunci când o linie conține delimitatorul
În exemplul nostru / etc / passwd, dacă treceți un alt delimitator decât: (colon), tăiat va afișa doar întreaga linie.
În exemplul următor, vom „ Am specificat delimitatorul ca | (țeavă), iar comanda tăiere afișează pur și simplu întreaga linie, chiar și atunci când nu găsește nicio linie care să aibă | (țeavă) ca delimitator.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -f1root:x:0:0:root:/root:/bin/bashbala:x:1000:1000:bala,,,:/home/bala:/bin/bash
Dar, este posibil să filtrați și să afișați numai liniile care conțin delimitatorul specificat folosind opțiunea -s.
Următorul exemplu nu afișează nicio ieșire, așa cum nu a făcut comanda de tăiere Nu găsiți nicio linie care să aibă | (pipe) ca delimitator în fișierul / etc / passwd.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -s -f1
Selectați toate câmpurile, cu excepția câmpurilor specificate
Pentru a completa lista de câmpuri de selecție, utilizați opțiunea –complement.
Următorul exemplu se afișează toate câmpurile din fișierul / etc / passwd, cu excepția câmpului 7
$ grep "/bin/bash" /etc/passwd | cut -d":" --complement -s -f7root:x:0:0:root:/rootbala:x:1000:1000:bala,,,:/home/bala
Modificare delimitator de ieșire pentru afișare
În mod implicit, delimitator de ieșire este același ca delimitator de intrare pe care îl specificăm în opțiunea cut -d.
Pentru a schimba delimitatorul de ieșire utilizați opțiunea –output-delimiter așa cum se arată mai jos. În acest exemplu, delimitatorul de intrare este: (colon), dar delimitatorul de ieșire este # (hash).
$ grep "/bin/bash" /etc/passwd | cut -d":" -s -f1,6,7 --output-delimiter="#"root#/root#/bin/bashbala#/home/bala#/bin/bash
Schimbați Delimitatorul de ieșire la Newline
În acest exemplu, fiecare câmp al ieșirii comenzii de tăiere este afișat într-o linie separată. Încă am folosit –output-delimiter, dar valoarea este $ ‘\ n’ ceea ce indică faptul că ar trebui să adăugăm o linie nouă ca delimitator de ieșire.
$ grep bala /etc/passwd | cut -d":" -f1,6,7 --output-delimiter=$"\n"bala/home/bala/bin/bash
Combine Cut with Other Unix Command Output
Puterea comenzii de tăiere poate fi realizată atunci când o combinați cu stdout-ul unei alte comenzi Unix.
Odată ce stăpâniți utilizarea de bază a comenzii de tăiere pe care l-am explicat mai sus, puteți folosi cu înțelepciune comanda de tăiere pentru a rezolva multe dintre cerințele dvs. de manipulare a textului.
Următorul exemplu indică modul în care puteți extrage doar informații utile din ieșirea comenzii ps. De asemenea, am arătat cum am filtrat ieșirea comenzii ps folosind grep și sed înainte ca ieșirea finală să fie dată comenzii de tăiere.Aici am folosit opțiunea de tăiere -d și -f pe care le-am explicat în exemplele de mai sus.
Dacă ți-a plăcut acest articol, s-ar putea să îți placă și tu ..
|
|