SRCREDACT(1) Text tools SRCREDACT(1)

srcredact - برنامه‌ای برای پالایش و پنهان‌سازی فایل‌های متنی

srcredact [OPTIONS] -e audience [full_file]

srcredact [OPTIONS] -u audience full_file [redacted_file]

srcredact -l [full_file]

srcredact -h|-v

srcredact برنامه‌ای برای استخراج «نسخه‌های پالایش‌شده» از فایل اصلی (گزینهٔ -e) یا اعمال تغییراتِ نسخه‌های پالایش‌شده در فایل اصلی («unredact»، گزینهٔ -u) است.

فایل اصلی از قطعاتی تشکیل شده است که برای مخاطبان مختلفی در نظر گرفته شده‌اند. هر مخاطب دارای یک name (نام) است، مانند "classified"، "unclssified"، "expert" و غیره. قطعات با خطوط محافظ آغاز و پایان می‌یابند. هر خط محافظ دارای قالبی به شکل زیر است (برای نحو پیش‌فرض TeX):

%<*name1|name2|...>

یا

%</name1|name2|...>

در حالت نخست، متنِ پس از محافظ برای مخاطبان "name1"، "name2" و... گنجانده می‌شود. در حالت دوم، متن برای این مخاطبان مستثنی می‌شود.

یک مخاطب ویژه به نام "ALL" وجود دارد: یک نویسهٔ عام برای تمام مخاطبان. بنابراین ترکیبِ

%</ALL>
%<*classified>

بدین معناست که این قطعه برای همهٔ مخاطبان به‌جز "classified" مستثنی شده است.

دقیقاً باید یکی از گزینه‌های -e (استخراج) یا -u (بازگردانی استخراج / unextract) مشخص شود. در حالت استخراج، آرگومان غیرگزینه‌ای نام فایل کامل است. اگر مشخص نشود، یا مقدار آن "-" باشد، ورودی استاندارد به کار می‌رود. در حالت unextract، نخستین آرگومان غیرگزینه‌ای

به‌جای الگوی پیش‌فرض "TeX"، از الگوی داده‌شده برای خطوط کامنت جهت جستجوی محافظ‌ها استفاده می‌کند. الگوهای شناخته‌شده عبارتند از:
/*<guard>*/
//<guard>
C<guard>
#<guard>
%<guard>

نام‌های الگو باید با ویرگول از هم جدا شوند، و برای جلوگیری از بسط پوسته، این فهرست می‌تواند درون گیومه قرار گیرد؛ مانند:

-c "TeX, c, shell"
فعال‌سازی حالت اشکال‌زدایی.
محتوای مربوط به مخاطب کنونی را در فایل file استخراج می‌کند. اگر نام file ساختاری مانند base-audience.extension داشته باشد (برای نمونه "report-unclassified.tex")، مخاطب کنونی از روی آن حدس زده می‌شود. گزینهٔ -a این حدس را لغو کرده و در صورتی که نام فایل از این الگو پیروی نکند، باید به کار رود. نام فایل "-" به معنای خروجی استاندارد است.
نمایش اطلاعات راهنما و خروج.
فهرست کردن تمام مخاطبانِ تعریف‌شده در فایل (در هر سطر یک مخاطب) و خروج.
یک فایل ویرایش‌شده که برای audience در نظر گرفته شده است (دومین آرگومان غیرگزینه‌ای) را گرفته و تغییرات آن را در فایل کامل (نخستین آرگومان غیرگزینه‌ای) ادغام می‌کند. اگر آرگومان دوم داده نشود، ورودی استاندارد به‌جای آن استفاده می‌شود. طبق معمول، "-" نیز به معنای ورودی استاندارد است. توجه داشته باشید که در این حالت، تنها یکی از این دو آرگومان فایل می‌تواند ورودی استاندارد باشد.
نمایش اطلاعات نسخه و خروج.
اگر "on"، 1 یا "true" باشد (پیش‌فرض)، کل سند را به‌طور ضمنی درون محافظ‌های زیر می‌پیچد:
%<*ALL>
...
%</ALL>

این برنامه در صورت موفقیت مقدار 0، در صورت وجود تعارض در حالت "unextract" مقدار 1، و در صورت بروز مشکل مقدار 2 را برمی‌گرداند.

همانند ابزار استاندارد diff3(1)، این برنامه ممکن است در حالت -u تعارض‌هایی میان نسخهٔ کامل و نسخهٔ ویرایش‌شده بیابد. در این صورت، فایل نهایی تعارض‌ها را به شیوهٔ معمول مشخص می‌کند؛ برای نمونه:

<<<<<<< /tmp/BrjXo0hMOB/full
%</nobonds>
Forty-five tons best old dry government bonds, suitable for furnace, gold
7 per cents., 1864, preferred.
%<*nobonds>
||||||| /tmp/BrjXo0hMOB/extracted
Forty-five tons best old dry government bonds, suitable for furnace, gold
7 per cents., 1864, preferred.
=======
>>>>>>> /tmp/BrjXo0hMOB/new

در اینجا "full" سند کامل، "extracted" فایل استخراج‌شده برای مخاطب مشخص‌شده، و "new" فایل ویرایش‌شده است.

Boris Veytsman, borisv@lk.net

این کار به سفارش دفتر حفاظت مالی مصرف‌کننده (Consumer Financial Protection Bureau)، خزانه‌داری ایالات متحده انجام شده است.

حق تکثیر (C) 2015 Boris Veytsman. نسخهٔ 1.0

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «پروانهٔ عمومی همگانی گنو» (GNU General Public License) همان‌گونه که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخهٔ ۲ پروانه و چه (به دلخواه خود) هر نسخهٔ پس از آن، دوباره توزیع کرده و/یا تغییر دهید.

این برنامه با این امید توزیع می‌شود که سودمند باشد، اما بدون هر گونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا تناسب برای یک هدف مشخص. برای جزئیات بیشتر «پروانهٔ عمومی همگانی گنو» را ببینید.

شما باید همراه با این برنامه یک نسخه از پروانهٔ عمومی همگانی GNU دریافت کرده باشید؛ در غیر این صورت، به نشانی زیر بنویسید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

2015-10-24 1.0