SCOLS-FILTER(5) Formate de fiiere i convenii SCOLS-FILTER(5) NUME scols-filter - sintaxa pentru expresiile de filtrare libsmartcols SINTAXA expr: param | ( expr ) | expr && expr | expr AND expr | expr || expr | expr OR expr | !expr | NOT expr | expr == expr | expr EQ expr | expr != expr | expr NE expr | expr >= expr | expr GE expr | expr <= expr | expr LE expr | expr > expr | expr GT expr | expr < expr | expr LT expr | expr =~ ir | expr !~ ir param: integer | float | ir | boolean | holder integer: [0-9]* | [0-9]*[KMGTPEZY] | [0-9]*[KMGTPEZY]iB float: integer.integer boolean: "true" | "false" | "TRUE" | "FALSE" ir: "[^\n\"]*" | '[^\n\']*' holder: [a-zA-Z][a-zA-Z_.%:/\-0-9]* DESCRIERE Expresia filtrului poate fi utilizata de aplicaia legata cu libsmartcols pentru a filtra datele de ieire. Aplicaia poate utiliza filtrul inainte de a aduna toate datele pentru ieire pentru a reduce resursele i a imbunatai performana. Acest lucru face ca filtrul scols sa fie mai eficient decat grep(1) pe toata ieirea. De exemplu lsblk --output NAME,LABEL,FSTYPE --filter 'NAME=="sda1"' ajuta lsblk(1) sa nu citeasca LABEL-urile pentru toate dispozitivele bloc din udevd sau libblkid, ci sa le citeasca doar pentru dispozitivul sda1. Filtrul poate fi utilizat i pentru coloanele care nu sunt utilizate in ieire. NOTE SINTAXA O expresie consta din titulari(holders), parametri i operatori. Tipul ,,holde" (titular) acceptat in prezent este doar numele coloanei. Numele trebuie sa fie utilizat fara ghilimele. Inainte de evaluare, aplicaia asociaza numele coloanelor din expresia data coloanelor tabelului de ieire i atribuie tipul de date al coloanei titularului. Tipul implicit este ,,string" (ir). Parametrul ,,param" este destinat reprezentarii directe a unei valori. Tipurile de date acceptate in prezent sunt ,,integer", ,,float", ,,string" i ,,boolean". Un operator lucreaza cu unul sau doi operanzi. Un operator are o ateptare cu privire la tipul (tipurile) de date ale operanzilor sai. Acordarea unui tip de date neateptat unui operator provoaca o eroare de sintaxa. Biblioteca poate face distribuia intre tipuri de date, preferina fiind intotdeauna tipul specificat de ,,param", iar in cazul unei expresii cu numar i ,,float", preferina este ,,float". Operatorii care accepta doi operanzi sunt ,,and", ,,or", ,,eq", ,,ne", ,,le", ,,lt", ,,ge", ,,gt", ,,=~", ,,!~". Operatorii numii alfabetic au un alias in limbaj C: ,,&&", ,,||", ,,==", ,,!=", ,,<", ,,<=", ,,>=" i ,,>". ,,!" este singurul operator care are un singur operand. Daca nu este specificat niciun operator, atunci expresia este adevarata daca parametrul ,,param" sau titularul ,,holder" nu sunt goale. De exemplu, ,,--filter NUME" va returna liniile in care coloana NUME nu este goala. ,,=~" i ,,!~" sunt pentru potrivirea expresiei regulate; daca un ir de caractere din partea dreapta se potrivete (sau nu se potrivete pentru ,,!~") cu o expresie regulata din partea stanga, rezultatul este true (adevarat). Operandul din partea dreapta trebuie sa fie un ir literal. Prioritatea operatorilor este ,,or", ,,and" i ,,eq", ,,ne", ,,le", ,,gt", ,,ge", ,,=~", ,,!~", ,,not". LIMITARI In ceea ce privete valorile tip ,,float" i ,,integer", motorul de filtrare accepta numai numere ne-negative. ,,integer" este un numar pe 64 de bii fara semn, iar ,,float" este un numar dublu lung. ,,integer" poate fi urmat de sufixele multiplicative KiB, GiB, TiB, PiB, EiB, ZiB i YiB (,,iB" este opional, de exemplu, ,,K" are aceeai semnificaie ca ,,KiB"). AUTORI Karel Zak Pe baza implementarii iniiale de la Masatake YAMATO RAPORTAREA ERORILOR Pentru rapoarte de eroare, folosii sistemul de urmarire al erorilor . DISPONIBILITATE Biblioteca libsmartcols face parte din pachetul util-linux incepand cu versiunea 2.25. Acesta poate fi descarcat de la Linux Kernel Archive . util-linux 2.41 2025-03-29 SCOLS-FILTER(5)