.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3. .TH DATAMASH "1" "April 2025" "datamash 1.9" "User Commands" .SH "نام (NAME)" datamash \- انجام محاسبات آماری و تبدیل‌های متنی پایه‌ای روی فایل‌های متنی .SH "خلاصه دستور (SYNOPSIS)" .B datamash [\fI\,OPTION\/\fR] \fI\,op \/\fR[\fI\,fld\/\fR] [\fI\,op fld \/\fR...] .SH "توضیحات (DESCRIPTION)" عملیات عددی/رشته‌ای را روی ورودی دریافتی از stdin انجام می‌دهد. .PP عبارت .B op عملیاتی است که باید انجام شود. اگر از یک عملیات اصلی استفاده شود، باید ابتدا در فهرست قرار گیرد و در صورت تمایل می‌توان عملیات دیگر را پس از آن آورد. عبارت .B fld فیلد ورودی مورد استفاده است. فیلد می‌تواند یک عدد (۱=اولین فیلد)، یا در صورت استفاده از گزینه‌های .B \-H یا .B \-\-header\-in نام یک فیلد باشد. چندین فیلد را می‌توان با کاما جدا کرد (مانند 1,6,8). بازه‌ای از فیلدها را می‌توان با یک خط تیره مشخص کرد (مانند 2\-8). برای عملیاتی که به یک جفت فیلد نیاز دارند از دونقطه استفاده کنید (مانند 'pcov 2:6'). .SS "عملیات اصلی:" .IP groupby, crosstab, transpose, reverse, check .SS "عملیات فیلتر خطوط:" .IP rmdup .SS "عملیات روی هر خط:" .IP base64, debase64, md5, sha1, sha224, sha256, sha384, sha512, bin, strbin, round, floor, ceil, trunc, frac, dirname, basename, barename, extname, getnum, cut .SS "عملیات گروه‌بندی عددی:" .IP sum, min, max, absmin, absmax, range .SS "عملیات گروه‌بندی متنی/عددی:" .IP count, first, last, rand, unique, collapse, countunique .SS "عملیات گروه‌بندی آماری:" .IP mean, geomean, harmmean, trimmean, median, q1, q3, iqr, perc, mode, antimode, pstdev, sstdev, pvar, svar, ms, rms, mad, madraw, pskew, sskew, pkurt, skurt, dpo, jarque, scov, pcov, spearson, ppearson, dotprod .SH "گزینه‌ها (OPTIONS)" .SS "گزینه‌های گروه‌بندی:" .TP \fB\-C\fR, \fB\-\-skip\-comments\fR نادیده گرفتن خطوط توضیح (خطوطی که با '#' یا ';' و احیاناً فاصله‌های خالی اختیاری شروع می‌شوند) .TP \fB\-f\fR, \fB\-\-full\fR چاپ تمام خط ورودی قبل از نتایج عملیات (پیش‌فرض: فقط کلیدهای گروه‌بندی‌شده چاپ می‌شوند) .IP این گزینه فقط برای عملیات خط‌به‌خط منطقی است. سایر کاربردها منسوخ شده‌اند و در نسخه‌های آینده GNU Datamash حذف خواهند شد. .TP \fB\-g\fR, \fB\-\-group\fR=\fI\,X[\/\fR,Y,Z] گروه‌بندی از طریق فیلدهای X,[Y,Z]؛ معادل با عملیات اصلی 'groupby' .TP \fB\-\-header\-in\fR اولین خط ورودی، سرایند ستون‌ها است .TP \fB\-\-header\-out\fR چاپ سرایند ستون‌ها به عنوان خط اول .TP \fB\-H\fR, \fB\-\-headers\fR همانند ترکیب '\-\-header\-in \fB\-\-header\-out\fR' .TP \fB\-\-vnlog\fR خواندن و نوشتن داده‌ها در قالب vnlog. این گزینه به صورت ضمنی گزینه‌های \fB\-C\fR \fB\-H\fR \fB\-W\fR را فعال می‌کند .TP \fB\-i\fR, \fB\-\-ignore\-case\fR نادیده گرفتن بزرگی و کوچکی حروف هنگام مقایسه متن؛ این گزینه بر گروه‌بندی و عملیات رشته‌ای تأثیر می‌گذارد .TP \fB\-s\fR, \fB\-\-sort\fR مرتب‌سازی ورودی پیش از گروه‌بندی؛ این گزینه نیاز به ارسال دستی ورودی با پایپ به 'sort' را برطرف می‌کند .TP \fB\-S\fR, \fB\-\-seed\fR تنظیم مقدار بذر (seed) برای عملیاتی که از تصادفی‌سازی استفاده می‌کنند .TP \fB\-c\fR, \fB\-\-collapse\-delimiter\fR=\fI\,X\/\fR استفاده از X برای جداسازی عناصر در فهرست‌های collapse و unique (پیش‌فرض: کاما) .SS "گزینه‌های عملیات فایل:" .TP \fB\-\-no\-strict\fR اجازه دادن به خطوطی با تعداد فیلدهای متغیر .TP \fB\-\-filler\fR=\fI\,X\/\fR پر کردن مقادیر مفقود با X (پیش‌فرض: N/A) .SS "گزینه‌های عمومی:" .TP \fB\-t\fR, \fB\-\-field\-separator\fR=\fI\,X\/\fR استفاده از X به جای TAB به عنوان جداکننده فیلدها .TP \fB\-\-format\fR=\fI\,FORMAT\/\fR چاپ مقادیر عددی با قالب نقطه شناور مشابه printf. .TP \fB\-\-output\-delimiter\fR=\fI\,X\/\fR استفاده از X به عنوان جداکننده فیلدهای خروجی (پیش‌فرض: استفاده از همان جداکننده \fB\-t\fR/\-W) .TP \fB\-\-narm\fR نادیده گرفتن مقادیر NA/NaN .TP \fB\-R\fR, \fB\-\-round\fR=\fI\,N\/\fR گرد کردن خروجی عددی تا N رقم اعشار .TP \fB\-W\fR, \fB\-\-whitespace\fR استفاده از فضای خالی (یک یا چند فاصله و/یا تب) به عنوان جداکننده فیلدها .TP \fB\-z\fR, \fB\-\-zero\-terminated\fR پایان دادن به خطوط با بایت 0، نه با خط جدید .TP \fB\-\-sort\-cmd=\fR/path/to/sort دستور sort(1) جایگزین برای استفاده. .TP \fB\-h\fR, \fB\-\-help\fR نمایش این راهنما و خروج .TP \fB\-V\fR, \fB\-\-version\fR نمایش اطلاعات نسخه و خروج .PP .SH "عملیات در دسترس (AVAILABLE OPERATIONS)" .PP .SS "عملیات اصلی (Primary Operations)" عملیات اصلی بر شیوه پردازش فایل تأثیر می‌گذارند. در صورت استفاده، عملیات اصلی باید ابتدا در فهرست آورده شود. اگر عملیات اصلی مشخص نشده باشد، کل فایل پردازش می‌شود - یا خط‌به‌خط (برای عملیات 'روی هر خط') یا همه خطوط به عنوان یک گروه واحد (برای عملیات گروه‌بندی). بخش مثال‌ها را در زیر ببینید. .PP .TP "\w'\fBcountunique\fR'u+1n" .B groupby X,Y,... op fld ... گروه‌بندی فایل بر اساس فیلدهای داده‌شده. معادل گزینه '\-g'. برای هر گروه، عملیات \fBop\fR را روی فیلد \fBfld\fR انجام می‌دهد. .TP .B crosstab X,Y [op fld ...] محاسبه جدول متقاطع فایل بر اساس دو فیلد (جدول متقاطع با نام جدول محوری یا pivot table نیز شناخته می‌شود). اگر عملیاتی مشخص نشود، تعداد وقوع جفت‌های X,Y را شمارش می‌کند. .TP .B transpose ترانهادن سطرها و ستون‌های فایل ورودی .TP .B reverse معکوس کردن ترتیب فیلدها در هر خط .TP .B check [N lines] [N fields] بررسی اینکه تمام خطوط فایل ورودی دارای تعداد فیلدهای یکسانی باشند، یا تعداد خطوط/فیلدها با مقادیر مورد انتظار مطابقت داشته باشد. تعداد خطوط و فیلدها در خروجی استاندارد چاپ می‌شوند. در صورت عدم تطابق تعداد خطوط یا فیلدها، با کد غیرصفر خارج شده و خط ناسازگار را چاپ می‌کند. .PP .SS "عملیات فیلتر خطوط (Line-Filtering operations)" .TP "\w'\fBcountunique\fR'u+1n" .B rmdup حذف خطوط دارای مقدار کلید تکراری .PP .SS "عملیات روی هر خط (Per-Line operations)" .TP "\w'\fBcountunique\fR'u+1n" .B base64 کدگذاری فیلد به صورت base64 .TP .B debase64 رمزگشایی فیلد از base64، با خروج همراه با خطا در صورت نامعتبر بودن رشته base64 .TP .B md5/sha1/sha224/sha256/sha384/sha512 محاسبه هش md5/sha1/sha224/sha256/sha384/sha512 مقدار فیلد .TP .B bin[:BUCKET-SIZE] دسته‌بندی مقادیر عددی در سطل‌هایی با اندازه \fBBUCKET-SIZE\fR (پیش‌فرض: 100). .TP .B strbin[:BUCKET-SIZE] هش کردن ورودی و بازگرداندن یک مقدار عددی صحیح بین صفر و \fBBUCKET-SIZE\fB (پیش‌فرض: 10). .TP .B round/floor/ceil/trunc/frac عملیات گرد کردن عددی. round (گرد کردن به سمت دور از صفر در نیمه‌ها)، floor (گرد کردن به پایین)، ceil (گرد کردن به بالا)، trunc (برش، گرد کردن به سمت صفر)، frac (بخش کسر، بازگرداندن بخش اعشاری یک مقدار ممیز شناور). .TP .B dirname/basename استخراج نام دایرکتوری و نام پایه فایل از یک رشته داده‌شده (مشابه با dirname(1) و basename(1)). .TP .B extname استخراج پسوند نام فایل (بدون '.'). .TP .B barename استخراج نام پایه فایل بدون پسوند. .TP .B getnum[:TYPE] استخراج یک عدد از فیلد. \fBTYPE\fR یک گزینه تک‌حرفی اختیاری n/i/d/p/h/o است (مثال‌های زیر را ببینید). .TP .B cut/echo کپی کردن فیلد ورودی به فیلد خروجی (مشابه با cut(1)). دستور echo صرفاً یک نام مستعار برای cut است. .PP .SS "عملیات گروه‌بندی عددی (Numeric Grouping operations)" .TP "\w'\fBcountunique\fR'u+1n" .B sum مجموع مقادیر .TP .B min کمینه مقدار .TP .B max بیشینه مقدار .TP .B absmin کمینه قدر مطلق مقادیر .TP .B absmax بیشینه قدر مطلق مقادیر .TP .B range دامنه مقادیر (بیشینه - کمینه) .PP .SS "عملیات گروه‌بندی متنی/عددی (Textual/Numeric Grouping operations)" .TP "\w'\fBcountunique\fR'u+1n" .B count شمارش تعداد عناصر موجود در گروه .TP .B first اولین مقدار در گروه .TP .B last آخرین مقدار در گروه .TP .B rand یک مقدار تصادفی از گروه .TP .B unique/uniq فهرست مرتب‌شده مقادیر یکتا و جداشده با کاما دستور uniq صرفاً یک نام مستعار برای unique است. .TP .B collapse فهرست تمام مقادیر ورودی جداشده با کاما .TP .B countunique تعداد مقادیر یکتا/متمایز .PP .SS "عملیات گروه‌بندی آماری (Statistical Grouping operations)" پیشوند \fBp/s\fR نشان‌دهنده نوع متغیر است: جامعه (\fBp\fRopulation) یا نمونه (\fBs\fRample). به طور معمول، نوع نمونه (\fBs\fRample) با توابع داخلی \fBGNU R\fR معادل است (برای نمونه، عملیات \fBsstdev\fR در datamash معادل تابع \fBsd()\fR در R است). .PP .TP "\w'\fBcountunique\fR'u+1n" .B mean میانگین مقادیر .TP .B geomean میانگین هندسی مقادیر .TP .B harmmean میانگین همساز (هارمونیک) مقادیر .TP .B trimmean[:PERCENT] میانگین پیراسته مقادیر. مقدار \fBPERCENT\fR باید بین 0 و 0.5 باشد. (\fBtrimmean:0\fR معادل با \fBmean\fR است. \fBtrimmean:0.5\fR معادل با \fBmedian\fR است). .TP .B ms میانگین مربعات مقادیر .TP .B rms ریشه میانگین مربعات مقادیر .TP .B median مقدار میانه .TP .B q1 مقدار چارک اول .TP .B q3 مقدار چارک سوم .TP .B iqr دامنه بین چارکی .TP .B perc[:PERCENTILE] مقدار صدک \fBPERCENTILE\fR (پیش‌فرض: 95). .TP .B mode مقدار نما (بسامدترین مقدار) .TP .B antimode مقدار پادنما (کم‌تکرارترین مقدار) .TP .B pstdev/sstdev انحراف معیار جامعه/نمونه .TP .B pvar/svar واریانس جامعه/نمونه .TP .B mad انحراف مطلق میانه، مقیاس‌بندی‌شده با ضریب ثابت 1.4826 برای توزیع‌های نرمال .TP .B madraw انحراف مطلق میانه، مقیاس‌بندی‌نشده .TP .B pskew/sskew چولگی گروه مقادیر x گزارش‌شده توسط عملیات 'sskew' و 'pskew': .nf x > 0 - positively skewed / skewed right 0 > x - negatively skewed / skewed left x > 1 - highly skewed right 1 > x > 0.5 - moderately skewed right 0.5 > x > \-0.5 - approximately symmetric \-0.5 > x > \-1 - moderately skewed left \-1 > x - highly skewed left .fi .TP .B pkurt/skurt کشیدگی اضافی (excess Kurtosis) گروه .TP .B jarque/dpo مقدار p-value در آزمون‌های نرمال بودن ژارک-برا (\fBjarque\fR) و دی‌آگوستینو-پیرسون (\fBdpo\fR): فرض صفر، نرمال بودن است؛ مقادیر پایین p-Value نشان‌دهنده داده‌های غیرنرمال است؛ مقادیر بالای p-Value نشان می‌دهد فرض صفر را نمی‌توان رد کرد. .TP .B pcov/scov [X:Y] کوواریانس فیلدهای X و Y .TP .B ppearson/spearson [X:Y] ضریب همبستگی گشتاوری پیرسون [Pearson's R] بین فیلدهای X و Y .TP .B dotprod [X:Y] ضرب عددی اسکالر (همچنین موسوم به ضرب نقطه‌ای یا ضرب داخلی اقلیدسی) بین فیلدهای X و Y .SH "مثال‌ها (EXAMPLES)" .SS "استفاده پایه‌ای (Basic usage)" چاپ مجموع و میانگین مقادیر فیلد ۱: .PP .nf .RS $ seq 10 | \fBdatamash\fR sum 1 mean 1 55 5.5 .RE .fi .PP گروه‌بندی ورودی بر اساس فیلد ۱، و محاسبه مجموع مقادیر (به ازای هر گروه) روی فیلد ۲: .PP .nf .RS $ cat example.txt A 10 A 5 B 9 B 11 $ \fBdatamash\fR \-g 1 sum 2 < example.txt A 15 B 20 $ \fBdatamash\fR groupby 1 sum 2 < example.txt A 15 B 20 .RE .fi .PP ورودی نامرتب باید مرتب شود (با استفاده از '\-s'): .PP .nf .RS $ cat example.txt A 10 C 4 B 9 C 1 A 5 B 11 $ \fBdatamash\fR \-s \-g1 sum 2 < example.txt A 15 B 20 C 5 .RE .fi .PP که معادل است با: .PP .nf .RS $ cat example.txt | sort \-k1,1 | \fBdatamash\fR \-g 1 sum 2 .RE .fi .SS "خطوط سرایند (Header lines)" .PP اگر فایل ورودی دارای خط سرایند است، از \fB\-H\fR \fB(\-\-headers)\fR استفاده کنید: .PP .nf .RS # با فرض فایلی حاوی نام دانش‌آموز، رشته تحصیلی، نمره آزمون... $ head \-n5 scores_h.txt Name Major Score Shawn Engineering 47 Caleb Business 87 Christian Business 88 Derek Arts 60 # محاسبه میانگین و انحراف معیار برای هر رشته $ \fBdatamash\fR \-\-sort \-\-headers \-\-group 2 mean 3 pstdev 3 < scores_h.txt (یا استفاده از فرم کوتاه) $ \fBdatamash\fR \-sH \-g2 mean 3 pstdev 3 < scores_h.txt (یا استفاده از فیلدهای نام‌گذاری‌شده) $ \fBdatamash\fR \-sH \-g Major mean Score pstdev Score < scores_h.txt GroupBy(Major) mean(Score) pstdev(Score) Arts 68.9 10.1 Business 87.3 4.9 Engineering 66.5 19.1 Health-Medicine 90.6 8.8 Life-Sciences 55.3 19.7 Social-Sciences 60.2 16.6 .RE .fi .PP نام فیلدها در صورتی که با یک رقم آغاز شوند یا حاوی نویسه‌های خاص (خط تیره/منفی، دونقطه، کاما) باشند، باید با یک بک‌اسلش اسکیپ شوند. به اثر متقابل اسکیپ با بک‌اسلش و کوتیشن‌گذاری شل توجه داشته باشید. دستورات معادل زیر مقادیر فیلدی به نام "FOO-BAR" را با هم جمع می‌کنند: .PP .nf .RS $ datamash -H sum FOO\\\\\-BAR < input.txt $ datamash -H sum 'FOO\\\-BAR' < input.txt $ datamash -H sum "FOO\\\\\-BAR" < input.txt .RE .fi .PP .SS "نادیده گرفتن خطوط توضیح (Skipping comment lines)" برای نادیده گرفتن خطوطی که با نویسه‌های '#' یا '\;' آغاز می‌شوند (همراه با فاصله‌های خالی اختیاری پیش از آن‌ها)، از \fB\-C\fR \fB(\-\-skip\-comments)\fR استفاده کنید: .PP .nf .RS $ cat in.txt #foo 3 bar 5 ;baz 7 $ datamash sum 2 < in.txt 15 $ datamash \-C sum 2 < in.txt 5 .RE .fi .PP .SS "چندین فیلد (Multiple fields)" برای مشخص کردن چندین فیلد از کاما یا خط تیره استفاده کنید. دستورات زیر معادل یکدیگرند: .nf .RS $ seq 9 | paste \- \- \- 1 2 3 4 5 6 7 8 9 $ seq 9 | paste \- \- \- | datamash sum 1 sum 2 sum 3 12 15 18 $ seq 9 | paste \- \- \- | datamash sum 1,2,3 12 15 18 $ seq 9 | paste \- \- \- | datamash sum 1-3 12 15 18 .RE .fi .PP .SS "گرد کردن (Rounding)" مثال‌های زیر عملیات مختلف گرد کردن را نشان می‌دهند: .nf .RS .RE .\" NOTE: The weird spacing/alignment is due to extract backslash .\" characters. Modify with caution. $ ( echo X ; seq \-1.25 0.25 1.25 ) \\ | datamash \-\-full \-H round 1 ceil 1 floor 1 trunc 1 frac 1 X round(X) ceil(X) floor(X) trunc(X) frac(X) \-1.25 \-1 \-1 \-2 \-1 \-0.25 \-1.00 \-1 \-1 \-1 \-1 0 \-0.75 \-1 0 \-1 0 \-0.75 \-0.50 \-1 0 \-1 0 \-0.5 \-0.25 0 0 \-1 0 \-0.25 0.00 0 0 0 0 0 0.25 0 1 0 0 0.25 0.50 1 1 0 0 0.5 0.75 1 1 0 0 0.75 1.00 1 1 1 1 0 1.25 1 2 1 1 0.25 .fi .PP .SS "معکوس کردن فیلدها (Reversing fields)" .PP .nf .RS $ seq 6 | paste \- \- | \fBdatamash\fR reverse 2 1 4 3 6 5 .RE .fi .PP .SS "ترانهادن یک فایل (Transposing a file)" .PP .nf .RS $ seq 6 | paste \- \- | \fBdatamash\fR transpose 1 3 5 2 4 6 .RE .fi .PP .SS "حذف خطوط تکراری (Removing Duplicated lines)" حذف خطوطی با مقدار کلید تکراری از فیلد ۱ (برخلاف عملیات \fBfirst\fR و \fBlast\fR، عملیات \fBrmdup\fR بسیار سریع‌تر است و نیازی به مرتب‌سازی فایل با \-s ندارد): .PP .nf .RS # با فرض فهرستی از فایل‌ها و شناسه‌های نمونه: $ cat INPUT SampleID File 2 cc.txt 3 dd.txt 1 ab.txt 2 ee.txt 3 ff.txt # حذف خطوط دارای شناسه نمونه تکراری (فیلد ۱): $ \fBdatamash\fR rmdup 1 < INPUT # یا استفاده از نام فیلد: $ \fBdatamash\fR \-H rmdup SampleID < INPUT SampleID File 2 cc.txt 3 dd.txt 1 ab.txt .RE .fi .PP .SS "چک‌سام‌ها (Checksums)" محاسبه مقدار هش sha1 هر فایل متنی (TXT)، پس از محاسبه مقدار sha1 محتوای هر فایل: .PP .nf .RS $ sha1sum *.txt | datamash -Wf sha1 2 .RE .fi .PP .SS "بررسی ساختار فایل (Check file structure)" بررسی ساختار فایل ورودی: اطمینان از اینکه همه خطوط دارای تعداد فیلدهای یکسان، یا تعداد خطوط/فیلدهای مورد انتظار باشند: .PP .nf .RS $ seq 10 | paste \- \- | datamash check && echo ok || echo fail 5 lines, 2 fields ok $ seq 13 | paste \- \- \- | datamash check && echo ok || echo fail line 4 (3 fields): 10 11 12 line 5 (2 fields): 13 datamash: check failed: line 5 has 2 fields (previous line had 3) fail $ seq 10 | paste \- \- | datamash check 2 fields 5 lines 5 lines, 2 fields $ seq 10 | paste \- \- | datamash check 4 fields line 1 (2 fields): 1 2 datamash: check failed: line 1 has 2 fields (expecting 4) $ seq 10 | paste \- \- | datamash check 7 lines datamash: check failed: input had 5 lines (expecting 7) .RE .fi .PP .SS "جدول متقاطع (Cross-Tabulation)" جدول متقاطع رابطه میان دو فیلد را مقایسه می‌کند. با فرض فایل ورودی زیر: .nf .RS $ cat input.txt a x 3 a y 7 b x 21 a x 40 .RE .fi .PP نمایش جدول متقاطع میان فیلد اول (a/b) و فیلد دوم (x/y) - شمارش دفعات رخداد هر جفت (توجه: مرتب‌سازی الزامی است): .PP .nf .RS $ \fBdatamash\fR \-s crosstab 1,2 < input.txt x y a 2 1 b 1 N/A .RE .fi .PP می‌توان به جای شمارش از یک عملیات گروه‌بندی اختیاری استفاده کرد: .PP .nf .RS .PP $ \fBdatamash\fR \-s crosstab 1,2 sum 3 < input.txt x y a 43 7 b 21 N/A $ \fBdatamash\fR \-s crosstab 1,2 unique 3 < input.txt x y a 3,40 7 b 21 N/A .RE .fi .PP .SS "دسته‌بندی مقادیر عددی (Binning numeric values)" دسته‌بندی مقادیر ورودی در سطل‌هایی با اندازه ۵: .PP .nf .RS $ ( echo X ; seq \-10 2.5 10 ) \\ | \fBdatamash\fR \-H \-\-full bin:5 1 X bin(X) \-10.0 \-10 \-7.5 \-10 \-5.0 \-5 \-2.5 \-5 0.0 0 2.5 0 5.0 5 7.5 5 10.0 10 .RE .fi .PP .SS "دسته‌بندی مقادیر رشته‌ای (Binning string values)" هش کردن هر مقدار ورودی به یک عدد صحیح. یک کاربرد متداول، تقسیم یک فایل ورودی به N بخش است، به طوری که تضمین شود تمام مقادیر مربوط به یک کلید معین در یک بخش یکسان ذخیره می‌شوند: .PP .nf .RS $ cat input.txt PatientA 10 PatientB 11 PatientC 12 PatientA 14 PatientC 15 .RE شناسه هر بیمار به یک سطل بین ۰ تا ۹ هش شده و در آخرین فیلد چاپ می‌شود: .RS $ \fBdatamash\fR \-\-full strbin 1 < input.txt PatientA 10 5 PatientB 11 6 PatientC 12 7 PatientA 14 5 PatientC 15 7 .RE تقسیم ورودی به بخش‌ها را می‌توان با awk انجام داد: .RS $ cat input.txt \\ | \fBdatamash\fR \-\-full strbin 1 \\ | awk '{print > $NF ".txt"}' .RE .fi .PP .SS "استخراج اعداد با getnum (Extracting numbers with getnum)" عملیات 'getnum' یک مقدار عددی را از فیلد استخراج می‌کند: .PP .nf .RS $ echo zoom-123.45xyz | \fBdatamash\fR getnum 1 123.45 .RE دستور \fBgetnum\fR یک گزینه تک‌حرفی اختیاری \fBTYPE\fR را می‌پذیرد: .nf getnum:n - اعداد طبیعی (اعداد صحیح مثبت، شامل صفر) getnum:i - اعداد صحیح getnum:d - اعداد اعشاری ممیزدار getnum:p - اعداد اعشاری مثبت (این حالت پیش‌فرض است) getnum:h - اعداد شانزده‌شانزدهی (هگزادسیمال) getnum:o - اعداد هشت‌هشتی (اکتال) .fi .PP مثال‌ها: .nf .RS $ echo zoom-123.45xyz | \fBdatamash\fR getnum 1 123.45 $ echo zoom-123.45xyz | \fBdatamash\fR getnum:n 1 123 $ echo zoom-123.45xyz | \fBdatamash\fR getnum:i 1 -123 $ echo zoom-123.45xyz | \fBdatamash\fR getnum:d 1 123.45 $ echo zoom-123.45xyz | \fBdatamash\fR getnum:p 1 -123.45 # Hex 0x123 = 291 Decimal $ echo zoom-123.45xyz | \fBdatamash\fR getnum:h 1 291 # Octal 0123 = 83 Decimal $ echo zoom-123.45xyz | \fBdatamash\fR getnum:o 1 83 .RE .SH "اطلاعات تکمیلی (ADDITIONAL INFORMATION)" ببینید: .UR https://www.gnu.org/software/datamash وب‌سایت گنو دیتامش (https://www.gnu.org/software/datamash) .SH "محیط (ENVIRONMENT)" .TP LC_NUMERIC نویسه ممیز اعشار و جداکننده هزارگان .SH "نویسندگان (AUTHORS)" نوشته‌شده توسط Assaf Gordon، Tim Rice، Shawn Wagner و Erik Auerswald. .SH "حق نشر (COPYRIGHT)" کپی‌رایت \(co 2025 Assaf Gordon and Tim Rice مجوز GPLv3+: گنو GPL نسخه ۳ یا بالاتر . .br این یک نرم‌افزار آزاد است: شما می‌توانید آن را تغییر داده یا مجدداً توزیع کنید. هیچ ضمانتی وجود ندارد، تا حدی که قانون اجازه می‌دهد. .SH "همچنین ببینید (SEE ALSO)" مستندات کامل برای .B datamash به صورت یک کتابچه راهنمای Texinfo نگهداری می‌شود. اگر برنامه‌های .B info و .B datamash به درستی روی سیستم شما نصب شده باشند، دستور .IP .B info datamash .PP باید دسترسی شما به کل کتابچه راهنما را فراهم کند.