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, se va afișa un tabel de conținut (formatele tar, ar, zip, i7-zip, rar, jar, rpm, deb ms-cabinet și iso). Multe alte fișiere vor fi reformatate pentru afișare. Sunt incluse formatele de suite pdf, dvi, markdown, Office (MS și Openoffice), NetCDF, matlab, html și media (imagine, audio și video). Acest lucru necesită instalarea unor programe de ajutor.

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)
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.

Variabila LESS_ADVANCED_PREPROCESSOR, acum obsoletă, era utilizată pentru a decide dacă html, xml și perl pod trebuie să fie afișate ca text pur sau nu. Acest lucru a fost schimbat, aceste formate sunt acum întotdeauna interpretate, cu excepția cazului în care la numele fișierului se adaugă două puncte „:”. Dacă urmează tipul de fișier corect (html, xml, pod), ieșirea poate fi colorată (a se vedea mai jos).

Exemplu: less index.html:html

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.

Filtrul este capabil să evidențieze sintaxa pentru o mare varietate de tipuri de fișiere. Dacă este instalat, bat/batcat este utilizat pentru colorarea ieșirii. Dacă nu, se încearcă pe rând pygmentize, source-highlight, code2color și vimcolor. Pentru bat/batcat, tema este stabilită la ansi, iar stilul este stabilit la plain, care se apropie mai mult de ieșirea nefiltrată de less. Aceste configurații 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'
LESSCOLORIZER='bat --style=foo --theme=bar'
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, alegerea programului de colorare poate afecta rezultatul acestor programe. Pentru man, git și perldoc) lesspipe.sh nu face filtrare.

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-2023 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.

ianuarie 2023 lesspipe.sh