~2 min read • Updated Jul 16, 2025

در لینوکس، متن‌های خروجی در بسیاری موارد نیاز به ساختار و شکل‌نمایی مناسب دارند—چه برای نمایش در ترمینال، چه برای چاپ یا درج در مستندات. ابزارهایی برای شماره‌گذاری، چینش، صفحه‌بندی و تایپ متن ارائه شده‌اند که در ادامه معرفی می‌شوند.


nl – شماره‌گذاری خطوط


دستور nl خطوط را شماره‌گذاری می‌کند و با پشتیبانی از بخش‌بندی صفحه منطقی و قالب‌بندی سفارشی، انعطاف‌پذیری بالایی دارد.


  • نمونه ساده:
    nl distros.txt
  • شماره‌گذاری سفارشی:
    nl -n rz -w 3 -s ' '
  • نشانه‌های صفحه منطقی:
    \\:\\:\\: (هدر)، \\:\\: (بدنه)، \\: (فوتر)

fold – شکستن خطوط بلند


fold خطوط طولانی را به پهنای مشخصی تقسیم می‌کند، مناسب برای ترمینال‌های محدود.


echo "متن طولانی نمونه" | fold -w 12 -s

fmt – قالب‌بندی پاراگراف‌ها


fmt پاراگراف‌ها را با رعایت فاصله‌ها و تورفتگی‌ها مجدداً قالب‌بندی می‌کند، مناسب برای کامنت‌ها و نوشته‌های ساختارمند.


fmt -w 50 file.txt
fmt -p '# ' file.txt

pr – آماده‌سازی برای چاپ


pr فایل‌ها را صفحه‌بندی کرده و هدر، شماره صفحه و حاشیه اضافه می‌کند.


pr -l 15 -w 65 distros.txt

printf – خروجی ساخت‌یافته


printf برای تولید خروجی فرمت‌شده در اسکریپت‌ها استفاده می‌شود و ورودی از stdin دریافت نمی‌کند.


printf "Line: %05d\t%.2f\t%s\n" 7 3.14 "Done"

مشخص‌کنندهکاربرد
%dعدد صحیح ده‌دهی
%fعدد اعشاری
%sرشته متن
%x / %Xعدد شانزده‌دهی
%%علامت درصد واقعی

groff – قالب‌بندی پیشرفته سند


مجموعه ابزارهای groff برای قالب‌بندی اسناد با ماکروها و تولید خروجی PostScript یا PDF استفاده می‌شود. همچنین از tbl برای ساخت جدول پشتیبانی می‌کند.


  • نمایش دستی به شکل ascii:
    zcat ls.1.gz | groff -mandoc -T ascii
  • خروجی PDF:
    groff -mandoc file.1 > page.ps
    ps2pdf page.ps page.pdf
  • جدول با tbl:
    groff -t -T ascii formatted-table.txt

نتیجه‌گیری


ابزارهای فرمت‌بندی لینوکس مانند nl، fold، fmt، pr، printf و groff امکانات متنوعی برای نمایش و چاپ داده‌ها فراهم می‌کنند. چه در تهیه اسناد، چه در خروجی ترمینال یا تولید گزارش‌ها، تسلط بر این ابزارها برای کاربران لینوکس بسیار ارزشمند است.


Written & researched by Dr. Shahin Siami