DECORATE(1) دستورهای کاربری DECORATE(1)

decorate - تبدیل فیلدهایی با قالب‌های گوناگون

decorate [گزینه]... [ورودی]
decorate --decorate [گزینه]... [ورودی]
decorate --undecorate N [گزینه]... [ورودی]

تبدیل (و در صورت تمایل، مرتب‌سازی) فیلدهایی با قالب‌های گوناگون

با --decorate: فیلدهای تبدیل‌شده را به ابتدای هر خط افزوده و آن را در خروجی استاندارد (STDOUT) چاپ می‌کند؛ مرتب‌سازی انجام نمی‌دهد.

با --undecorate: تعداد N فیلد نخست را از ورودی حذف می‌کند؛ به عنوان گام پس‌پردازش پس از sort(1) به کار می‌رود.

بدون --decorate و --undecorate: ورودی را به طور خودکار آرایش (decorate) کرده، sort(1) را اجرا می‌کند و فیلدهای اضافی را از خروجی حذف (undecorate) می‌نماید؛ این ساده‌ترین شیوه استفاده است. برنامه decorate امکان مرتب‌سازی ورودی را بر اساس ترتیبات گوناگون مانند نشانی‌های IP، اعداد رومی و غیره فراهم می‌سازد. این برنامه در هماهنگی با sort(1) برای انجام مرتب‌سازی واقعی کار می‌کند.

این ایده توسط Pádraig Brady پیشنهاد شده بود:

۱. آرایش (Decorate): تبدیل ورودی به یک قالب قابل مرتب‌سازی به عنوان فیلدهای اضافی
۲. مرتب‌سازی بر اساس فیلدهای اضافه‌شده
۳. بازگردانی (Undecorate): حذف فیلدهای اضافه‌شده

فیلدهای مشخص‌شده را تبدیل/آرایش کرده و خروجی را در STDOUT چاپ می‌کند. به طور خودکار sort(1) را اجرا نمی‌کند یا فیلدهای اضافی خروجی را حذف نمی‌نماید.
تعداد N خط نخست را آرایش یا مرتب نمی‌کند.
همانند --header=N است.
کلید/فیلد جهت مرتب‌سازی؛ ساختاری مشابه sort(1) دارد که در صورت تمایل پس از آن ´:method´ برای تبدیل فیلد به یک مقدار قابل مرتب‌سازی می‌آید؛ مثال‌ها و تبدیل‌های موجود را در ادامه ببینید.
استفاده از SEP به جای تغییر حالت از نویسه غیرفاصله به فاصله.
چاپ آرگومان‌های تنظیم‌شده برای sort(1)؛ هنگام استفاده از --decorate و سپس اجرای دستی sort(1) کاربرد دارد.
حذف N فیلد نخست.
جداکننده خطوط نویسه تهی (NUL) است، نه خط جدید.
دستور جایگزین sort(1) برای استفاده.
نمایش این راهنما و خروج
نمایش اطلاعات نسخه و خروج

گزینه‌های زیر عیناً به sort ارسال می‌شوند (بیشتر آن‌ها به GNU sort وابسته هستند):

-c, --check

--compress-program

--random-source

-s, --stable

--batch-size

-S, --buffer-size

-T, --temporary-directory

-u, --unique

--parallel

روش‌های تبدیل موجود (جهت استفاده با -k):

رونویسی بدون تغییر
اعداد رومی
طول (به بایت) فیلد مشخص‌شده
نشانی‌های IPv4 ده‌دهی نقطه‌دار
نشانی‌های IPv6
نشانی‌های عددی و نقطه‌ای IPv4 (شامل مقادیر هشت‌هشتی و هگزادسیمال)
نشانی‌های IPv6 و IPv4 (به صورت IPv4 نگاشت‌شده در IPv6)
نشانی‌های IPv6 و IPv4 (به صورت IPv4 سازگار با IPv6)

نمونه‌ای از آماده‌سازی برای مرتب‌سازی بر اساس اعداد رومی:

$ printf "%s\n" C V III IX XI | decorate -k1,1:roman --decorate
0000100 C
0000005 V
0000003 III
0000009 IX
0000011 XI

اکنون می‌توان خروجی را به sort(1) ارسال کرده و سپس فیلد نخست را حذف (=undecorate) کرد:

$ printf "%s\n" C V III IX XI \
       | decorate -k1,1:roman --decorate \
       | sort -k1,1 \
       | decorate --undecorate 1
III
V
IX
XI
C

برنامه decorate می‌تواند مراحل decorate-sort-undecorate را به طور خودکار ترکیب کند (هنگامی که بدون --decorate یا --undecorate اجرا شود):

$ printf "%s\n" C V III IX XI | decorate -k1,1:roman
III
V
IX
XI
C

ببینید: وب‌سایت GNU Datamash

نوشته شده توسط Assaf Gordon، Timothy Rice، Shawn Wagner و Erik Auerswald.

حق نشر © 2025 Assaf Gordon و Timothy Rice
مجوز GPLv3+: مجوز عمومی گنو نسخه ۳ یا بالاتر https://gnu.org/licenses/gpl.html.
این نرم‌افزار آزاد است: شما می‌توانید آن را تغییر دهید یا دوباره توزیع کنید. هیچ ضمانتی وجود ندارد، تا حدی که قانون اجازه می‌دهد.

مستندات کامل برای decorate به صورت یک کتابچه راهنمای Texinfo نگهداری می‌شود. اگر برنامه‌های info و decorate به درستی روی سیستم شما نصب شده باشند، دستور

info decorate

باید دسترسی شما را به راهنمای کامل فراهم کند.

April 2025 decorate 1.9