SCOLS-FILTER(5)

NAZWA
scols-filter - składnia wyrażeń filtrów libsmartcols

SKŁADNIA

    wyraż: param
          | ( wyraż )
          | wyraż && wyraż | wyraż AND wyraż
          | wyraż || wyraż | wyraż OR wyraż
          | !wyraż         | NOT wyraż
          | wyraż == wyraż | wyraż EQ wyraż
          | wyraż != wyraż | wyraż NE wyraż
          | wyraż >= wyraż | wyraż GE wyraż
          | wyraż <= wyraż | wyraż LE wyraż
          | wyraż >  wyraż | wyraż GT wyraż
          | wyraż <  wyraż | wyraż LT wyraż
          | wyraż =~ łańcuch
          | wyraż !~ łańcuch
    param: l-całk
          | l-zmprz
          | łańcuch
          | wart-log
          | uchwyt
    l-całk: [0-9]*
          | [0-9]*[KMGTPEZY]
          | [0-9]*[KMGTPEZY]iB
    l-zmprz: l-całk.l-całk
    wart-log: "true" | "false" | "TRUE" | "FALSE"
    łańcuch: "[^\n\"]*" | '[^\n\']*'
    uchwyt: [a-zA-Z][a-zA-Z_.%:/\-0-9]*

OPIS

Wyrażenie filtra można stosować w aplikacji połączonej z libsmartcols do filtrowania danych wyjściowych. Aplikacja może zastosować filtry przed zebraniem wszystkich danych do wyjścia, aby zmniejszyć wykorzystanie zasobów i poprawić wydajność. Czyni to filtr scols efektywniejszym od korzystania z programu grep(1) na pełnym wyjściu. Na przykład

     lsblk --output NAME,LABEL,FSTYPE --filter 'NAME=="sda1"'

pomaga lsblk(1) nie odczytywać etykiet LABEL ze wszystkich urządzeń blokowych z udevd lub libblkid, lecz odczytać je jedynie dla urządzenia sda1.

Filtr można też stosować wobec kolumn, których nie używa się w wyjściu.

UWAGI DOTYCZĄCE SKŁADNI

Wyrażenie składa się z uchwytów, param(etrów) i operatorów.

Aktualnie obsługiwanym typem `uchwyt`u jest jedynie nazwa kolumny. Nazwę trzeba podać bez cudzysłowów. Przed nadaniem wartości, aplikacji przypisuje nazwy kolumn w danym wyrażeniu do kolumn wyjściowych tabeli i przypisuje typ danych kolumny do uchwytu. Domyślnym typem jest "łańcuch".

param służy do bezpośredniej reprezentacji wartości. Obecnie obsługiwane są liczby całkowite, liczby zmiennoprzecinkowe, łańcuchy i wartości logiczne.

Operator działa z jednym lub dwoma operandami. Operator oczekuje określonego typu danych swych operandów. Przekazanie nieoczekiwanego typu danych operatorowi spowoduje wystąpienie błędu składni. Biblioteka może rzutować pomiędzy typami danych, preferowanym jest zawsze typ określony przez param, a w przypadku wyrażenia z liczbą oraz liczbą zmiennoprzecinkową, preferowana jest liczba zmiennoprzecinkowa.

Operatorami przyjmującymi dwa operandy są: and, or, eq, ne, le, lt, ge, gt, =~, !~. Operatory nazwane alfabetycznie mają aliasy w stylu języka C: &&, ||, ==, !=, <, ⇐, >= i >.

! jest jedynym operatorem przyjmującym jeden operand. Jeśli nie poda się operatora, wyrażenie jest prawdziwe, gdy param(etr) lub uchwyt są niepuste. Na przykład --filter NAME zwróci wiersze, gdzie NAME jest niepusta.

=~ i !~ służą do dopasowywania wyrażeń regularnych; jeśli łańcuch po prawej stronie zostanie dopasowany (albo nie zostanie dopasowany, w przypadku !~, do wyrażenia regularnego po lewej stronie), wynik jest prawdziwy. Prawa strona operandu musi być dosłownym łańcuchem.

Kolejność operatorów jest następująca: or, and oraz eq, ne, le, gt, ge, =~, !~, not.

OGRANICZENIA

W wartościach typu l-zmprz i l-całk silnik filtra obsługuje jedynie liczby nieujemne. l-całk jest 64-bitową liczbą bez znaku, a l-zmprz liczbą typu long double. Po l-całk może występować jeden z przyrostków oznaczających wielokrotność: KiB, GiB, TiB, PiB, EiB, ZiB i YiB (cząstka "iB" jest opcjonalna, tzn. "K" ma takie samo znaczenie jak "KiB").

AUTORZY

Na podstawie pierwotnej implementacji autorstwa

ZGŁASZANIE BŁĘDÓW

Problemy należy zgłaszać w

DOSTĘPNOŚĆ

Biblioteka libsmartcols jest częścią pakietu util-linux od wersji 2.25. Można go pobrać ze strony