LESSPIPE.SH(1) Comenzi utilizator LESSPIPE.SH(1)

lesspipe.sh - un filtru pentru less

lesspipe.sh [FIȘIER[e]]...

Scopul lui lesspipe.sh este de a îmbunătăți rezultatul lui less. Alegerea regulilor care urmează să fie aplicate pentru a modifica rezultatul se bazează pe conținutul fișierului. Extensia fișierului este respectată doar în ultimă instanță. De obicei, lesspipe.sh este apelat ca un filtru de intrare pentru less.

Cu ajutorul acestui filtru, less va afișa conținutul necomprimat al fișierelor comprimate (gzip, bzip2, compress, zstd, lz4, lzip, xz, lzma sau brotli). Pentru fișierele care conțin arhive și directoare (de exemplu, formatele tar, ar, zip, 7-zip, rar, jar, cpio, rpm, deb, ms-cabinet, iso, appimage și snap), se va afișa un tabel de conținut. Multe alte fișiere vor fi reformatate pentru afișare. Sunt incluse formatele pdf, dvi, markdown, suite Office (MS și Openoffice), NetCDF, matlab, device tree blob, html și media (imagine, audio și video). Acesta necesită instalarea unor programe ajutătoare.

De asemenea, filtrul poate fi aplicat în mod recursiv pentru a extrage și afișa din mers fișierele din arhive. Acest lucru funcționează până la o adâncime de 6, unde aplicarea unui algoritm de decomprimare contează ca un nivel separat.

Dacă instrumentufile raportează un text cu o codificare diferită de cea utilizată în terminal, atunci textul va fi transformat folosind iconv în codificarea implicită. Acest lucru presupune că instrumentul file obține codificarea corectă a fișierului, ceea ce poate fi greșit în anumite situații. Dacă se adaugă două puncte „:” la numele fișierului, conversia este suprimată.

Atunci când se utilizează programele git, vim sau mutt, acestea pot fi activate pentru a citi fișiere care nu sunt de tip text, utilizând lesspipe.sh. Acest lucru este descris în Wiki la adresa https://github.com/wofr06/lesspipe/wiki.

Filtrul este apelat din less cu condiția ca variabila de mediu LESSOPEN să fie definită corespunzător. În cazul shell-urilor de tip ksh (bash, zsh), comanda

LESSOPEN="|lesspipe.sh %s"; export LESSOPEN
activează filtrul pentru «less». Utilizați ruta complet calificată, dacă lesspipe.sh nu se află în ruta de căutare. Comanda pentru a defini LESSOPEN poate fi, de asemenea, afișată prin apelarea lesspipe.sh fără argumente. Aceasta poate fi utilizată chiar și pentru a defini direct LESSOPEN:
eval `lesspipe.sh` (bash) sau
lesspipe.sh|source /dev/stdin (zsh)
Comenzile de mai sus funcționează numai în modul descris dacă numele fișierului este lesspipe.sh. Dacă acesta este instalat sub un nume diferit, atunci apelarea fără un argument va funcționa ca un filtru cu fanionul LESSQUIET activat și așteptând intrare de la STDIN.

După ce ați definit variabila de mediu în modul descris mai sus, less va afișa informații textuale pentru o gamă largă de formate de fișiere.

În mod normal, filtrul nu este apelat dacă intrarea este direcționată către «less» ca în

cat somefile | less
Așa cum este descris în pagina de manual a «less», filtrarea într-o conductă poate fi totuși forțată prin începerea LESSOPEN cu caracterele |-.

LESSOPEN care începe cu cele două caractere || pentru a gestiona fișierele goale și erorile de comandă este implementată doar parțial, de obicei la eșecurile comenzilor din lesspipe.sh se afișează mesajele de eroare.

Pentru a suprima mesajele informale din prima linie de ieșire a filtrului, variabila ENV LESSQUIET poate fi fixată la o valoare nevidă.

Pentru a dezactiva temporar filtrul, se pot adăuga două puncte la numele fișierului „:”. În cazul în care numele fișierului conține două puncte, în locul acestora trebuie folosit un semn egal.

Fișierele în format html, xml și perl pod sunt întotdeauna interpretate. Cu toate acestea, uneori conținutul original al fișierului ar trebui să fie vizualizat în schimb. După cum s-a menționat anterior, acest lucru poate fi realizat prin adăugarea de două puncte („:”) la numele fișierului. Dacă urmează tipul corect de fișier (html, xml, pod), ieșirea poate fi colorată (a se vedea și secțiunea de mai jos).

Exemplu: less index.html:html

Dacă este instalat binarul xmq, atunci xml este redat diferit, astfel încât structura xml să fie mai bine recunoscută. O afișare similară pentru conținutul html folosind xmq se obține prin adăugarea a două puncte („:”) la numele fișierului. Pentru a obține conținutul original al fișierului html, sunt necesare de două ori două puncte în acest caz („::”).

Filtrul este capabil să evidențieze sintaxa pentru o mare varietate de tipuri de fișiere. Dacă este instalat, nvimpager este utilizat pentru colorarea ieșirii. Dacă nu, sunt încercate pe rând bat/batcat, pygmentize, source-highlight, vimcolor și code2color. Pentru bat/batcat, tema este stabilită la ansi și stilul este stabilit la plain, ceea ce se apropie de rezultatul nefiltrat al less. Aceste opțiuni pot fi modificate în ~/.config/bat/config sau prin variabilele de mediu BAT_STYLE și BAT_THEME.

Dintre programele de colorare, se poate forța utilizarea unuia dintre ele prin definirea variabilei ENV LESSCOLORIZER la numele programului de colorare. Pentru pygmentize și bat/batcat sunt permise configurări de opțiuni restrânse, după cum urmează:

LESSCOLORIZER='pygmentize -O style=foo' („-P” este permisă de asemenea)
LESSCOLORIZER='bat --style=foo --theme=bar' (implicit este tema „ansi”, stilul „plain”)
Evidențierea sintaxei este activată dacă variabila de mediu LESS există și conține opțiunea -R sau dacă «less» este apelat cu această opțiune. Acest lucru garantează că secvențele de control sunt convertite în culori și nu distorsionează afișarea. Utilizarea opțiunii -r nu este recomandată, deoarece dispunerea ecranului poate fi greșită, dacă în ieșire se află linii lungi.

Evidențierea sintaxei poate fi dezactivată prin adăugarea a două puncte după numele fișierului, dacă ieșirea a fost colorată. Dacă a fost aleasă un limbaj greșit pentru evidențierea sintaxei, atunci poate fi forțată un alt limbaj prin adăugarea a două puncte și a unui sufix după numele fișierului.

Într-o conductă, această metodă nu poate fi utilizată. Ca o soluție se poate adăuga un ultim argument care este inspectat de lesspipe.sh. Este posibil să se folosească doar două puncte „:” (dezactivarea filtrului) sau :extensia (forțarea limbajului), de exemplu cu

comandă care generează cod c | less - :c

Atunci când sunt îndeplinite condițiile de evidențiere a sintaxei, listele de directoare și listele cu conținutul fișierelor tar sunt de asemenea colorate.

Deoarece less este utilizat ca navigator implicit în alte programe (de exemplu, man, git și perldoc)) lesspipe.sh poate fi angajat și poate modifica rezultatul acestor programe.

De îndată ce lesspipe.sh apelează un program pentru a converti datele de intrare, capacitatea de a urmări fișierele în creștere (utilizând comanda F din less) este pierdută. Acest lucru este de obicei dorit pentru fișiere de jurnal precum syslog. Pentru a dezactiva temporar lesspipe.sh trebuie adăugate două puncte ca ultim argument pentru less ca de exemplu în

less /var/log/syslog :
sau less pot fi apelat cu argumentul +F, care este echivalent cu F în paginator:
less +F /var/log/syslog
Adăugarea a două puncte la numele fișierului nu funcționează, deoarece atunci filtrul trebuie să fie activat pentru a elimina cel puțin cele două puncte și pentru a utiliza «cat» pentru fișierul original. Pe de altă parte, fișierele jurnal care nu cresc pot fi colorate folosind ccze. Recunoașterea sa ca fișier jurnal este dificilă dacă nu se termină în .log, dar poate fi forțată prin adăugarea :.log la numele fișierului, ca de exemplu în
less /var/log/syslog:.log

Această versiune a lesspipe.sh vă permite să vizualizați fișiere individuale conținute într-o arhivă de fișiere, care la rândul ei poate fi conținută într-o altă arhivă.

Notația pentru vizualizarea fișierelor din arhivele multi-fișiere este

less fișier_arhivă:fișier_conținut
sau chiar
less super_arhivă:fișier_arhivă:fișier_conținut
Pentru a afișa ultimul fișier în formatul brut al lanțului, trebuie adăugate două puncte (:) la numele fișierului. Dacă acesta conține două puncte, atunci trebuie să se utilizeze semnul egal (=) drept caracter de separare alternativ.

Din nou, această metodă de extragere și afișare a fișierelor nu funcționează dacă less este apelat într-o conductă de ieșire și LESSOPEN începe cu caracterele |-. Ca și în cazul evidențierii sintaxei, soluția este de a utiliza un al doilea argument care începe cu două puncte. În acest caz, comanda de mai sus ar fi scrisă sub forma

cat super_arhivă | less - :arhivă:fișier_conținut

Cu ajutorul fișierelor lesscomplete (pentru zsh și bash), _less (pentru zsh) și less_completion (pentru bash) furnizate, se poate realiza o completare a numelui cu ajutorul tastei «TAB» pentru fișierele din arhive. Introducerea a două puncte (:) sau a unui semn egal (=) după numele unui fișier de arhivă și apoi apăsarea tastei de tabulare declanșează mecanismul de completare. Acest lucru funcționează și în arhivele înlănțuite. Fișierele lesscomplete și less_completare trebuie să se afle într-unul dintre directoarele enumerate în $PATH, iar funcția _less pentru zsh într-un director enumerat de $fpath. Scriptul less_completion trebuie să aibă ca sursă un script de inițializare bash, de exemplu, în ~/.bashrc. Se pot adăuga directoare noi, cum ar fi ~/scripts și ~/.fpath, utilizând comenzile

PATH=~/scripts:$PATH și fpath=(~/.fpath $fpath)

Filtrarea lesspipe.sh poate fi înlocuită sau îmbunătățită de un program definit de utilizator. Un astfel de program trebuie să se numească fie .lessfilter (și să fie plasat în directorul personal al utilizatorului), fie lessfilter (și să fie accesibil dintr-un director menționat în $PATH). Acesta trebuie să fie executabil și trebuie să se încheie cu un cod de ieșire 0, dacă filtrarea a fost efectuată în cadrul scriptului respectiv. În caz contrar, un cod de ieșire diferit de zero înseamnă că filtrarea este lăsată în seama «lesspipe.sh».

Acest mecanism poate fi utilizat pentru a adăuga filtre pentru noi formate sau, de exemplu, pentru a inhiba filtrarea pentru anumite tipuri de fișiere.

Wolfgang Friebel

Raportați erorile la <wp.friebel AT gmail DOT com>.

Drepturi de autor © 2005-2024 Wolfgang Friebel
Acesta este software liber; consultați sursa pentru condițiile de copiere. NU există NICIO garanție; nici măcar pentru COMERCIALIZARE sau POTRIVIRE PENTRU UN ANUMIT SCOP.

less(1)

O descriere a lesspipe.sh este, de asemenea, conținută în fișierul README conținut în pachetul de cod sursă

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

august 2024 lesspipe.sh