gdiffmk(1) General Commands Manual gdiffmk(1)

gdiffmk - نشانه‌گذاری تفاوت‌های میان فایل‌های groff/nroff/troff

gdiffmk [-a add-mark] [-c change-mark] [-d delete-mark] [-x diff-command] [-D [-B] [-M mark1 mark2]] [--] file1 file2 [output-file]
gdiffmk --help
gdiffmk --version

دستور gdiffmk دو سند roff(7) به نام‌های file1 و file2 را مقایسه کرده و سند دیگری را که از هر دوی آن‌ها مشتق شده است در جریان خروجی استاندارد (یا output-file) می‌نویسد، و در محل‌هایی از خروجی که اسناد ورودی با یکدیگر تفاوت دارند، درخواست‌های نویسه حاشیه (mc) را اضافه می‌کند. gdiffmk اسناد منبع را تفسیر نمی‌کند؛ این ابزار کامنت‌های roff و تغییرات بی‌اثر در قالب‌بندی را معنادار در نظر می‌گیرد. به عنوان مثال، این برنامه درک نمی‌کند که \h'3m'، \h'(1 * 3m)' و \h'3m+0' همگی دارای یک معنا هستند. اگر آرگومان file1 یا file2 برابر “-” باشد، gdiffmk جریان ورودی استاندارد را برای آن ورودی می‌خواند. اگر عملوند output مشخص شده باشد، gdiffmk خروجی را در فایلی با همان نام می‌نویسد. اگر برابر “-” بوده یا تعیین نشده باشد، gdiffmk خروجی را در جریان خروجی استاندارد می‌نویسد. عملوند “-” نمی‌تواند هم‌زمان هم عملوند ورودی و هم خروجی باشد.

گزینه --help پیام راهنمای نحوه استفاده و گزینه --version اطلاعات نسخه را نمایش می‌دهد؛ هر دو پس از نمایش خارج می‌شوند.

مطالبی را که در file1 وجود ندارند اما در file2 حاضر هستند، با add-mark نشانه‌گذاری می‌کند (پیش‌فرض: “+”).
درخواست‌های br را که به طور معمول توسط گزینه -D درج می‌شوند، متوقف (لغو) می‌کند. با احتیاط استفاده شود؛ چنین درخواست‌هایی تنها راه تضمین نشانه‌گذاری حذفیات و تغییرات کوچک هستند.
مطالبی را که میان file1 و file2 متفاوت هستند، با change-mark نشانه‌گذاری می‌کند (پیش‌فرض: “|”).
مطالبی را که در file1 وجود دارند اما در file2 حاضر نیستند، با delete-mark نشانه‌گذاری می‌کند (پیش‌فرض: “*”).
مطالب تغییریافته و حذف‌شده را با جداکننده‌های احاطه‌کننده علامت‌گذاری می‌کند.
هنگام استفاده از گزینه -D، از mark1 (پیش‌فرض: “[[”) و mark2 (پیش‌فرض: “]]”) به عنوان جداکننده استفاده می‌کند.
از برنامه diff-command برای انجام مقایسه میان file1 و file2 استفاده می‌کند. diff-command (پیش‌فرض: diff) باید گزینه الحاقی -D در GNU diff(1) را بپذیرد و پشتیبانی کند.
--
تمامی آرگومان‌های بعدی را به عنوان نام فایل در نظر می‌گیرد، حتی اگر با “-” شروع شوند.

دستور gdiffmk در صورت یکسان بودن فایل‌های ورودی با وضعیت 0 خارج می‌شود؛ در صورت تفاوت آن‌ها با وضعیت 1؛ در صورت بروز خطای نحوه استفاده با وضعیت 2؛ اگر دستورات diff(1) یا sh(1) سیستم از ویژگی‌های مورد نیاز gdiffmk پشتیبانی نکنند با وضعیت 3؛ و اگر آرگومان output تکراری و منطبق بر file1 یا file2 باشد با وضعیت 4 خارج خواهد شد.

خروجی لزوماً با تمامی بسته‌های ماکرو یا پیش‌پردازنده‌ها سازگار نیست. یک راهکار مطمئن این است که gdiffmk را به جای سورس ورودی، بر روی خروجی پیش‌پردازنده نهایی اجرا کنید.

gdiffmk به گزینه -D در GNU diff برای ایجاد قالب خروجی ادغام‌شده “#ifdef” وابسته است. مشخص شده است که diff موجود در Busybox از این گزینه پشتیبانی نمی‌کند. همچنین گزینه -x diff-command را ببینید.

gdiffmk توسط Mike Bianchi، که اکنون بازنشسته شده است، نوشته شده است. این برنامه توسط توسعه‌دهندگان groff نگهداری می‌شود.

groff(1), nroff(1), troff(1), roff(7), diff(1)

2026-03-15 groff 1.24.1