Linux command tac -citește fișierele în ordine inversă

Configurare noua (How To)

Situatie

Numele spune totul: „tac” este „cat” scris invers și, după cum probabil ai ghicit, utilitarul afișează liniile unui fișier în ordine inversă, începând cu ultima și terminând cu prima. Este inclus în pachetul GNU coreutils, așa că aproape orice distribuție Linux populară îl are deja instalat.

Poate te întrebi: la ce bun să-l folosesc? Cel mai util scenariu este citirea fișierelor jurnal (log-uri). Majoritatea acestor fișiere adaugă intrările noi la final, ceea ce înseamnă că informațiile care te interesează se află la capătul unui fișier ce poate avea mii de linii. Executând comanda `tac /var/log/syslog | less`, aduci cele mai recente intrări în partea de sus, permițându-ți să începi lectura imediat, fără a mai fi nevoie să derulezi.

Solutie

De asemenea, funcționează bine împreună cu alte instrumente. Dacă trimiți rezultatul către `grep` folosind opțiunea `-m` — de exemplu, `tac access.log | grep -m 5 “404”` — vei obține cele mai recente cinci potriviri fără a fi nevoie să parcurgi întregul fișier. Deoarece `tac` poate citi atât din fluxul de intrare standard (stdin), cât și din fișiere, se integrează ușor în orice flux de comenzi (pipeline) și poate inversa rezultatul unei alte comenzi, cum ar fi `seq 1 5 | tac`.

Opțiunea `-s` modifică separatorul pe care `tac` îl folosește pentru a fragmenta datele de intrare — util în cazul datelor care nu sunt separate prin caractere de linie nouă —, în timp ce opțiunea `-r` tratează acest separator ca pe o expresie regulată. Acest lucru permite inversarea ordinii înregistrărilor în texte cu o structură simplă.

Ca de obicei, există câteva limitări. `tac` inversează liniile, nu caracterele, așadar nu poate înlocui comanda `rev`, care inversează ordinea caracterelor din cadrul fiecărei linii. De asemenea, `tac` trebuie să citească toate datele de intrare înainte de a putea afișa prima linie, ceea ce îl face nepotrivit pentru fluxuri de date continue (infinite). Dacă ai nevoie doar de ultimele câteva linii, comanda `tail` este mai rapidă. Pe sistemele macOS și BSD, `tac` nu este de obicei instalat, însă `tail -r` oferă o funcționalitate similară.

Tip solutie

Permanent

Voteaza

(6 din 11 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?