Scroll to navigation

SCOLS-FILTER(5) Формати датотека и конвенције SCOLS-FILTER(5)

НАЗИВ

scols-filter - синтакса за изразе „libsmartcols“ филтера

СИНТАКСА

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 =~ string
| expr !~ string param: integer
| float
| string
| boolean
| holder цео број: [0-9]*
| [0-9]*[KMGTPEZY]
| [0-9]*[KMGTPEZY]iB float: integer.integer boolean: "true" | "false" | "TRUE" | "FALSE" ниска: "[^\n\"]*" | '[^\n\']*' држалац: [a-zA-Z][a-zA-Z_.%:/\-0-9]*

ОПИС

Израз филтера се може користити од стране апликације повезане са „libsmartcols“ на излазне податке филтера. Апликација може да користи филтер пре него добави све податке за излаз да би олакшао ресурсе и побољшао учинковитост. Ово чини „scols“ филтер делотворнијим од „grep(1)“-а на потпуном излазу. На пример


lsblk --output НАЗИВ,НАТПИС,ВРСТАСД --filter 'НАЗИВ=="sda1"'

помаже „lsblk(1)“-у да не чита НАПОМЕНЕ за све блок уређаје из „udevd“-а или „libblkid“-а, већ да прочита само за уређај „sda1“.

Филтер се такође може користити за колоне које се не користе у излазу.

НАПОМЕНЕ СИНТАКСЕ

Израз се састоји од држалаца, параметара и оператора.

Тренутно подржана врста „држаоца“ је само назив колоне. Назив треба да се користи без наводника. Пре процене, апликација мапира називе колона у датом изразу на колоне излазне табеле и додељује врсту података колоне држаоцу. Основна врста је „ниска“.

„param“ је за директно представљање вредности. Тренутно подржане врсте података су цели бројеви, децимални, ниске и логичке вредности.

Оператор ради са једним или два операнда. Оператор има очекивање о врсти података свог операнда. Давање неочекиване врсте података оператору доводи до грешке синтаксе. Библиотека може да бира између врсти података, жељена је увек врста коју наводи „param“ и у случају израза са бројем и зарезом предност има зарез.

Оператори који могу имати два операнда су „and“, „or“, „eq“, „ne“, „le“, „lt“, „ge“, „gt“, „=~“, „!~“. Азбучним редом именовани оператори имају алијасе у Ц-језику: „&&“, „||“, „==“, „!=“, „<“, „⇐“, „>=“, и „>“.

„!“ је једини оператор који има један операнд. Ако није наведен оператор тада је израз тачан ако параметар или држалац нису празни. На пример „--filter НАЗИВ“ ће дати редове у којима колона НАЗИВ није празна.

„=~“ и „!~“ је за поређење регуларног израза; ако ниска са десне стране одговара (или се не поклапа са „!~“) регуларном изразу на левој страни, резултат је тачан. Операнд са десне стране мора бити литерал ниске.

Предности у операторима су „or“, „and“, и „eq“, „ne“, „le“, „gt“, „ge“, „=~“, „!~“, „not“.

ОГРАНИЧЕЊА

О „float“ и „integer“ вредностима врсте, погон филтера подржава само не-негативне бројеве. „integer“ је беззнаковни 64-битни број, а „float“ је дуги дупли. После „integer“-а могу да стоје мултипликативни суфикси KiB, GiB, TiB, PiB, EiB, ZiB, и YiB („iB“ је изборно, нпр., „K“ има исто значење као „KiB“).

АУТОРИ

Карел Зак <kzak@redhat.com>

Засновано на изворној примени од Masatake YAMATO <yamato@redhat.com>-а.

ПРИЈАВЉИВАЊЕ ГРЕШАКА

За пријављивање грешака, користите „https://github.com/util-linux/util-linux/issues[issue tracker]“.

ДОСТУПНОСТ

Библиотека libsmartcols је део „util-linux“ пакета још од издања 2.25. Може се преузети са Архиве Линукс кернела <https://www.kernel.org/pub/linux/utils/util-linux/>.

2025-08-12 util-linux 2.41.1