'\" t .\" Title: scols-filter .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-09-02 .\" Manual: File formats and conventions .\" Source: util-linux 2.42.3 .\" Language: Persian .\" .TH "SCOLS\-FILTER" "5" "2026-09-02" "util\-linux 2.42.3" "File formats and conventions" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" scols-filter \- نحو و قالب عبارات فیلتر برای ابزارهای libsmartcols .SH "نحو (SYNTAX)" .sp .if n .RS 4 .nf .fam C 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 integer: [0\-9]* | [0\-9]*[KMGTPEZY] | [0\-9]*[KMGTPEZY]iB float: integer.integer boolean: "true" | "false" | "TRUE" | "FALSE" string: "[^\(rsn\(rs"]*" | \*(Aq[^\(rsn\(rs\*(Aq]*\*(Aq holder: [a\-zA\-Z][a\-zA\-Z_.%:/\(rs\-0\-9]* .fam .fi .if n .RE .SH "توضیحات (DESCRIPTION)" .sp عبارت فیلتر می‌تواند توسط برنامه‌های لینک‌شده با libsmartcols برای فیلتر کردن داده‌های خروجی استفاده شود. برنامه می‌تواند پیش از گردآوری همهٔ داده‌ها برای خروجی، از این فیلتر استفاده کند تا مصرف منابع کاهش یافته و کارایی بهبود یابد. این امر فیلتر scols را نسبت به اجرای \fBgrep\fP(1) بر روی خروجی کامل مؤثرتر می‌سازد. به عنوان مثال: .sp .if n .RS 4 .nf .fam C lsblk \-\-output NAME,LABEL,FSTYPE \-\-filter \*(AqNAME=="sda1"\*(Aq .fam .fi .if n .RE .sp به \fBlsblk\fP(1) کمک می‌کند تا LABELها را برای همهٔ دستگاه‌های بلوکی از udevd یا libblkid نخواند، بلکه آن را تنها برای دستگاه sda1 بخواند. .sp فیلتر همچنین می‌تواند برای ستون‌هایی که در خروجی استفاده نشده‌اند نیز به کار رود. .SH "نکات نحوی (SYNTAX NOTES)" .sp یک عبارت از نگه‌دارنده‌ها (holders)، پارامترها (params) و عملگرها (operators) تشکیل می‌شود. .sp نوع \f(CRholder\fP که در حال حاضر پشتیبانی می‌شود تنها نام ستون است. این نام باید بدون علامت نقل‌قول استفاده شود. پیش از ارزیابی، برنامه نام‌های ستون‌ها در عبارت داده‌شده را به ستون‌های جدول خروجی نگاشت کرده و نوع دادهٔ ستون را به نگه‌دارنده (holder) اختصاص می‌دهد. نوع پیش‌فرض "string" است. .sp مفهوم \f(CRparam\fP برای نمایش مستقیم یک مقدار است. انواع داده‌ای که در حال حاضر پشتیبانی می‌شوند عبارتند از: integer (عدد صحیح)، float (عدد اعشاری)، string (رشته) و boolean (بولی). .sp یک عملگر با یک یا دو عملوند کار می‌کند. یک عملگر انتظاری دربارهٔ نوع دادهٔ عملوندهای خود دارد. دادن نوع دادهٔ غیرمنتظره به یک عملگر باعث خطای نحوی می‌شود. کتابخانه می‌تواند تبدیل نوع بین انواع داده را انجام دهد؛ نوع ترجیحی همواره نوعی است که توسط \f(CRparam\fP مشخص شده و در مورد عبارت دارای عدد صحیح و اعشاری، نوع ترجیحی اعشاری (float) است. .sp عملگرهایی که دو عملوند می‌گیرند عبارتند از \f(CRand\fP، \f(CRor\fP، \f(CReq\fP، \f(CRne\fP، \f(CRle\fP، \f(CRlt\fP، \f(CRge\fP، \f(CRgt\fP، \f(CR=~\fP و \f(CR!~\fP. عملگرهای نام‌گذاری‌شده با حروف دارای نام‌های مستعار به سبک زبان C هستند: \f(CR&&\fP، \f(CR||\fP، \f(CR==\fP، \f(CR!=\fP، \f(CR<\fP، \f(CR\(lA\fP، \f(CR>=\fP و \f(CR>\fP. .sp عملگر \f(CR!\fP تنها عملگری است که یک عملوند می‌گیرد. اگر هیچ عملگری مشخص نشده باشد، در صورتی که param یا holder خالی نباشند، عبارت درست (true) خواهد بود. برای مثال \fB\-\-filter NAME\fP خطوطی را بازمی‌گرداند که در آن‌ها ستون NAME خالی نیست. .sp عملگرهای \f(CR=~\fP و \f(CR!~\fP برای تطبیق عبارت منظم هستند؛ اگر رشتهٔ سمت راست با عبارت منظم سمت چپ مطابقت داشته باشد (یا برای \f(CR!~\fP مطابقت نداشته باشد)، نتیجه درست (true) است. عملوند سمت راست باید یک رشتهٔ تحت‌اللفظی (string literal) باشد. .sp اولویت عملگرها به این ترتیب است: \f(CRor\fP، \f(CRand\fP و \f(CReq\fP، \f(CRne\fP، \f(CRle\fP، \f(CRgt\fP، \f(CRge\fP، \f(CR=~\fP، \f(CR!~\fP، \f(CRnot\fP. .SH "محدودیت‌ها (LIMITATIONS)" .sp در مورد مقادیر از نوع \f(CRfloat\fP و \f(CRinteger\fP، موتور فیلتر تنها از اعداد غیرمنفی پشتیبانی می‌کند. \f(CRinteger\fP یک عدد ۶۴ بیتی بدون علامت است و \f(CRfloat\fP از نوع long double می‌باشد. ممکن است پس از \f(CRinteger\fP پسوندهای ضربی KiB، GiB، TiB، PiB، EiB، ZiB و YiB بیاید ("iB" اختیاری است، به عنوان مثال "K" همان معنای "KiB" را دارد). .SH "نویسندگان (AUTHORS)" .sp .MTO "kzak\(atredhat.com" "Karel Zak" "" .sp بر اساس پیاده‌سازی اولیه از \c .MTO "yamato\(atredhat.com" "Masatake YAMATO" "." .SH "گزارش باگ‌ها (REPORTING BUGS)" .sp برای گزارش باگ‌ها، از \c .URL "https://github.com/util\-linux/util\-linux/issues" "سامانه پیگیری مشکلات" "." .SH "در دسترس بودن (AVAILABILITY)" .sp کتابخانهٔ \fBlibsmartcols\fP از نسخهٔ 2.25 بخشی از بستهٔ util\-linux است. می‌توان آن را از \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux" "بایگانی هسته لینوکس" "." دریافت کرد.