| DIFFSTAT(1) | User commands | DIFFSTAT(1) |
نام (NAME)
diffstat - ایجاد نمودار فراوانی (هیستوگرام) از خروجی دستور diff
خلاصه دستور (SYNOPSIS)
diffstat [گزینهها] [مشخصات-فایل]
توضیحات (DESCRIPTION)
این برنامه خروجی diff را میخواند و یک هیستوگرام از سطرهای اضافهشده، حذفشده و تغییریافته را به تفکیک پرونده نمایش میدهد. ابزار Diffstat برای بررسی فایلهای وصله (patch) بزرگ و پیچیده بسیار کارآمد است. این برنامه از یک یا چند پرونده ورودی حاوی خروجی diff میخواند و هیستوگرامی از کل سطرهای تغییریافته برای هر پرونده ارجاع دادهشده تولید میکند.
اگر نام پرونده ورودی به “.bz2”, “.gz”, “.lzma”, “.xz”, “.zst”, “.z” یا “.Z”, ختم شود، diffstat دادههای غیرفشرده را از طریق لوله (pipe) از برنامه مربوطه میخواند. همچنین میتواند نوع فشردهسازی را از پروندههایی که از طریق ورودی استاندارد ارسال میشوند تشخیص دهد.
ابزار Diffstat پرکاربردترین انواع خروجی diff را تشخیص میدهد:
ابزار Diffstat سطرهایی را که توسط diff خروجی داده شدهاند برای تشخیص پروندههای مقایسهشده شناسایی میکند و سپس نشانگرهای ستون اول را که نوع تغییر (افزودن، حذف یا تغییر) را مشخص میکنند، میشمارد. این موارد در هیستوگرام با نویسههای "+"، "-" و "!" نمایش داده میشوند.
اگر هیچ نام فایلی در خط فرمان داده نشود، diffstat تفاوتها را از ورودی استاندارد میخواند.
گزینهها (OPTIONS)
- -b
- نادیده گرفتن خطوط مطابق با "Binary files XXX and YYY differ" در خروجی diff.
- -c
- افزودن پیشوند "#" به ابتدای هر خط خروجی، که آن را به یک خط کامنت برای اسکریپتهای پوسته تبدیل میکند.
- -C
- افزودن توالیهای گریز رنگی SGR برای برجستهسازی هیستوگرام.
- -D مقصد
- مشخص کردن دایرکتوری حاوی پروندههایی که میتوانند به عنوان نتیجه اعمال تفاوتها در نظر گرفته شوند. ابزار diffstat سطرهای موجود در پروندههای مربوطه را (پس از تطبیق نامها توسط گزینه -p) میشمارد تا تعداد کل سطرهای هر پرونده را به دست آورد.
- باقیمانده، پس از کسر سطرهای تغییریافته و حذفشده، به عنوان "سطرهای بدون تغییر" (unchanged lines) نمایش داده میشود.
- -d
- حالت اشکالزدایی اطلاعات زیادی چاپ میکند. این حالت معمولاً بهصورت کامپایلشده درون برنامه قرار دارد، اما میتوان جلوی آن را گرفت.
- -e پرونده
- هدایت خطای استاندارد به پرونده.
- -E
- حذف توالیهای گریز ANSI از هر خط پیش از تجزیه تفاوتها. این امر به diffstat اجازه میدهد با colordiff استفاده شود.
- -f قالب
- مشخص کردن قالب هیستوگرام.
- 0
- برای خروجی مختصر، که فقط مقدار و یک کد هیستوگرام برای هر یک از درج (+)، حذف (-) یا تغییر (!) را نشان میدهد.
- 1
- برای خروجی عادی.
- 2
- برای پر کردن هیستوگرام با نقطه.
- 4
- برای چاپ هر مقدار در کنار هیستوگرام.
- هر مقدار غیرصفر یک هیستوگرام تولید میکند. نقطهها و مقادیر جداگانه میتوانند با هم ترکیب شوند، برای نمونه -f6 هر دو را اعمال میکند.
- -h
- نمایش پیام راهنما و خروج.
- -k
- جلوگیری از ادغام نام پروندهها در گزارش.
- -K
- تلاش برای بهبود حاشیهنویسی پروندههای "only" با جستجوی مطابقت در مجموعه پروندههای حاصل و استنتاج این که پرونده اضافه یا حذف شده است.
- این گزینه در حال حاضر در ترکیب با -R کار نمیکند زیرا diffstat فقط مجموعه پروندههای حاصل را نگه میدارد.
- -l
- فقط فهرست کردن نام پروندهها. هیچ هیستوگرامی تولید نمیشود.
- -m
- ادغام شمارش درج/حذف از هر تکه (chunk) پرونده وصله برای تخمین تعداد سطرهای تغییریافته.
- -n عدد
- تعیین حداقل عرض مورد استفاده برای نام پروندهها. اگر این را مشخص نکنید، diffstat از طول طولانیترین نام پرونده پس از حذف پیشوندهای مشترک استفاده میکند.
- -N عدد
- تعیین حداکثر عرض مورد استفاده برای نام پروندهها. نامهای طولانیتر از این حد از سمت چپ کوتاه میشوند. اگر این را مشخص نکنید، diffstat گزینه -n را بررسی میکند.
- -o پرونده
- هدایت خروجی استاندارد به پرونده.
- -p عدد
- نادیده گرفتن منطقی که مسیرهای مشترک را حذف میکند، شبیهسازی گزینه "-p" در patch.
- اگر گزینه -p را تعیین نکنید، diffstat تفاوتها را بررسی کرده و پیشوند مشترک را از مسیرها حذف میکند. این رفتاری نیست که patch انجام میدهد.
- -q
- صرفنظر کردن از پیام "0 files changed" برای diffهای خالی.
- -r کد
- گرد کردن اختیاری دادههای نمایشدادهشده در هیستوگرام را به جای برش با تعدیل خطا فراهم میکند.
- 0
- حالت پیشفرض است. هیچ گرد کردنی انجام نمیشود، اما خطاهای انباشتهشده به ستونهای بعدی افزوده میشوند.
- 1
- دادهها را گرد میکند.
- 2
- دادهها را گرد کرده و هیستوگرام را تنظیم میکند تا در صورت وجود هرگونه تفاوت مطمئن شود چیزی نمایش داده میشود، حتی اگر آن تفاوتها در حالت عادی به صفر گرد شوند.
- -R
- فرض میکند وصله با جابجایی فایلهای قدیمی و جدید ایجاد شده است.
- -s
- فقط نمایش خط خلاصه، مانند تعداد درجها و حذفها.
- -S مبدا
- مشابه گزینه -D است، اما مکانی را مشخص میکند که پروندههای اصلی (پیش از اعمال تفاوتها) در آن یافت میشوند.
- -t
- جایگزین کردن هیستوگرام؛ خروجی مقادیر جداشده با کاما را برای تعداد سطرهای تغییریافته در تفاوتهای هر پرونده تولید میکند: درجشده، حذفشده و تغییریافته.
- اگر گزینههای -S یا -D داده شوند، تعداد سطرهای بدون تغییر پیش از تعداد تغییرات میآید.
- -T
- چاپ اعدادی که گزینه -t نشان میداد، بین مسیر و هیستوگرام.
- عرض تعداد تغییرات بر اساس بزرگترین مقدار تعیین میشود (حداقل ۳). عرض تعیینشده در گزینه -w جدا از عرض این اعداد است.
- -u
- جلوگیری از مرتبسازی نام پروندهها در گزارش.
- -v
- نمایش پیشرفت کار؛ برای نمونه اگر خروجی به یک فایل هدایت شده باشد، پیامهای پیشرفت را در خطای استاندارد مینویسد.
- -V
- چاپ شماره نسخه فعلی و خروج.
- -w عدد
- تعیین حداکثر عرض هیستوگرام. هیستوگرام هرگز کوتاهتر از ۱۰ ستون نخواهد بود، تا در صورتی که نام پروندهها بسیار بزرگ شدند مشکلی پیش نیاید.
- عرض پیشفرض ۸۰ ستون است، مگر اینکه خروجی به ترمینال باشد. در آن صورت، عرض پیشفرض برابر با عرض ترمینال خواهد بود.
محیط (ENVIRONMENT)
ابزار Diffstat در یک محیط سازگار با POSIX اجرا میشود.
میتوانید مسیرهای داخلی برنامههای استفادهشده برای استخراج و غیرفشردهسازی پروندههای ورودی را با تنظیم متغیرهای محیطی متناظر تغییر دهید:
DIFFSTAT_BZCAT_PATH DIFFSTAT_BZIP2_PATH DIFFSTAT_COMPRESS_PATH DIFFSTAT_GZIP_PATH DIFFSTAT_LZCAT_PATH DIFFSTAT_PCAT_PATH DIFFSTAT_UNCOMPRESS_PATH DIFFSTAT_XZ_PATH DIFFSTAT_ZCAT_PATH DIFFSTAT_ZSTD_PATH
با این حال، diffstat فرض میکند که برنامه حاصل از همان گزینههای خط فرمان استفاده میکند، مثلاً "-c" برای استخراج در خروجی استاندارد.
فایلها (FILES)
ابزار Diffstat یک ماژول باینری منفرد است که از هیچ پرونده کمکی استفاده نمیکند.
گزارش اشکال (BUGS)
ابزار Diffstat فرضیات زیادی درباره قالب خروجی diff در نظر میگیرد.
هیچ راهی برای دریافت نام پرونده از خروجی استاندارد diff بین دو فایل بدون هیچ گزینهای وجود ندارد. تفاوتهای زمینهای (Context diffs) و تفاوتهای یکپارچه (unified diffs) بهخوبی کار میکنند.
هیچ روش سادهای برای تعیین میزان همپوشانی بین نمایش «قبل» و «بعد» خطوط تغییریافته وجود ندارد. برنامه diffstat صرفاً تعداد خطوط درجشده و حذفشده را میشمارد تا برای گزینه -m خطوط تغییریافته را تخمین بزند.
نویسندگان (AUTHORS)
Thomas Dickey <dickey@invisible-island.net>.
همچنین ببینید (SEE ALSO)
| 2026-04-14 | 1.69 |