.\" GNU grep man page (Persian Translation - Parch Linux)
.de dT
.ds Dt \\$2
..
.dT Time-stamp: "2026-09-07"
.
.TH GREP 1 \*(Dt "GNU grep 3.11" "دستورات کاربر"
.
.if !\w|\*(lq| \{\
. ie \n(.g \{\
. ds lq \(lq\"
. ds rq \(rq\"
. \}
. el \{\
. ds lq ``
. ds rq ''
. \}
.\}
.
.if !\w|\*(la| \{\
.nr mH 0
.if \n(.g \
. if '\*(.T'html' \
. nr mH 1
.
.if n \{\
. do ftr CR R
. do ftr CI I
. do ftr CB B
.\}
.
.ie \n(.g \{\
. ds la \(la\"
. ds ra \(ra\"
.\}
.el \{\
. ds la <\"
. ds ra >\"
. nr HY 1
.\}
.
.de UR
. ds m1 \\$1\"
. nh
. if \\n(mH \{\
. do ev URL-div
. do di URL-div
. \}
..
.
.de UE
. ie \\n(mH \{\
. br
. di
. ev
. ie \\n(dn \{\
. do HTML-NS ""
. do chop URL-div
. do URL-div
\c
. do HTML-NS
. \}
. el \
. do HTML-NS "\\*(m1"
\&\\$*\"
. \}
. el \
\\*(la\\*(m1\\*(ra\\$*\"
. hy \\n(HY
..
.
.de MT
. ds m1 \\$1\"
. nh
. if \\n(mH \{\
. do ev URL-div
. do di URL-div
. \}
..
.
.de ME
. ie \\n(mH \{\
. br
. di
. ev
. ie \\n(dn \{\
. do HTML-NS ""
. do chop URL-div
. do URL-div
\c
. do HTML-NS
. \}
. el \
. do HTML-NS "\\*(m1"
\&\\$*\"
. \}
. el \
\\*(la\\*(m1\\*(ra\\$*\"
. hy \\n(HY
..
.\}
.
.hy 0
.
.SH "نام (NAME)"
grep, egrep, fgrep, rgrep \- چاپ خطوط منطبق با الگوها
.
.SH "خلاصه دستور (SYNOPSIS)"
.B grep
.RI [ گزینه .\|.\|.]\&
.I الگوها
.RI [ فایل .\|.\|.]
.br
.B grep
.RI [ گزینه .\|.\|.]\&
.B \-e
.I الگوها
\&.\|.\|.\&
.RI [ فایل .\|.\|.]
.br
.B grep
.RI [ گزینه .\|.\|.]\&
.B \-f
.I فایل_الگو
\&.\|.\|.\&
.RI [ فایل .\|.\|.]
.
.SH "توضیحات (DESCRIPTION)"
دستور
.B grep
به جستجوی
.I الگوها
در هر
.I فایل
میپردازد.
.I الگوها
شامل یک یا چند الگو است که با نویسه خط جدید (newline) از یکدیگر جدا شدهاند و
.B grep
هر خطی را که با یک الگو مطابقت داشته باشد چاپ میکند.
معمولاً زمانی که از
.B grep
در یک دستور شل استفاده میشود،
.I الگوها
باید داخل علامت نقلقول (کوتیشن) قرار گیرند.
.PP
یک
.I فایل
به صورت
.RB "\*(lq" \- "\*(rq"
به معنای ورودی استاندارد (standard input) است.
اگر هیچ فایلی داده نشود، در جستجوهای بازگشتی دایرکتوری جاری بررسی میشود و در جستجوهای غیربازگشتی ورودی استاندارد خوانده خواهد شد.
.PP
برنامههای مشتقشدهٔ
.BR egrep ،
.B fgrep
و
.B rgrep
نیز در دسترس هستند.
این برنامهها به ترتیب معادل
.BR "grep\ \-E" ،
.B "grep\ \-F"
و
.B "grep\ \-r"
هستند.
این موارد قدیمی (deprecated) شدهاند، اما برای سازگاری رو به عقب نگهداری میشوند.
به دلایل سازگاری و قابلیت حمل، توصیه میشود از این برنامههای قدیمی پرهیز کرده و در عوض از
.B grep
همراه با گزینه مرتبط با آن استفاده کنید.
.
.SH "گزینهها (OPTIONS)"
.SS "اطلاعات عمومی برنامه (Generic Program Information)"
.TP
.B \-\^\-help
نمایش پیام راهنما و خروج از برنامه.
.TP
.BR \-V ", " \-\^\-version
نمایش شماره نسخه
.B grep
و خروج از برنامه.
.SS "نحو الگو (Pattern Syntax)"
.TP
.BR \-E ", " \-\^\-extended\-regexp
تفسیر
.I الگوها
به عنوان عبارتهای منظم گسترده (EREs).
.TP
.BR \-F ", " \-\^\-fixed\-strings
تفسیر
.I الگوها
به عنوان رشتههای ثابت و مشخص، نه عبارتهای منظم.
.TP
.BR \-G ", " \-\^\-basic\-regexp
تفسیر
.I الگوها
به عنوان عبارتهای منظم پایه (BREs).
این حالت پیشفرض است.
.TP
.BR \-P ", " \-\^\-perl\-regexp
تفسیر
.I الگوها
به عنوان عبارتهای منظم سازگار با پرل (PCREs).
این گزینه هنگام ترکیب با گزینه
.B \-z
.RB ( \-\^\-null\-data )
آزمایشی است و ممکن است
.B "grep \-P"
در مورد ویژگیهای پیادهسازی نشده هشدار دهد.
.SS "کنترل تطابق (Matching Control)"
.TP
.BI \-e " الگوها" "\fR,\fP \-\^\-regexp=" الگوها
استفاده از
.I الگوها
به عنوان الگوهای جستجو.
اگر از این گزینه چند بار استفاده شود یا با گزینه
.B \-f
.RB ( \-\^\-file )
ترکیب شود، تمامی الگوهای دادهشده جستجو میشوند.
این گزینه میتواند برای محافظت از الگویی که با \*(lq\-\*(rq شروع میشود استفاده شود.
.TP
.BI \-f " فایل" "\fR,\fP \-\^\-file=" فایل
دریافت الگوها از
.IR فایل ،
یک الگو در هر خط.
اگر از این گزینه چند بار استفاده شود یا با گزینه
.B \-e
.RB ( \-\^\-regexp )
ترکیب شود، تمام الگوهای مشخصشده جستجو میشوند.
فایل خالی شامل صفر الگو است و بنابراین با چیزی مطابقت پیدا نمیکند.
اگر
.I فایل
برابر با
.B \-
باشد، الگوها از ورودی استاندارد خوانده میشوند.
.TP
.BR \-i ", " \-\^\-ignore\-case
نادیده گرفتن تمایز حروف بزرگ و کوچک در الگوها و دادههای ورودی، به طوری که حروفی که فقط در بزرگی و کوچکی متفاوتند با هم مطابقت داشته باشند.
.TP
.B \-\^\-no\-ignore\-case
عدم چشمپوشی از تمایز حروف بزرگ و کوچک در الگوها و دادههای ورودی.
این حالت پیشفرض است.
این گزینه برای اسکریپتهای شلی که قبلاً از
.B \-i
استفاده کردهاند مفید است تا اثر آن را خنثی کند.
.TP
.BR \-v ", " \-\^\-invert\-match
معکوس کردن نتیجه انطباق، جهت انتخاب و نمایش خطوطی که مطابقت ندارند.
.TP
.BR \-w ", " \-\^\-word\-regexp
فقط انتخاب خطوطی که بخشهای منطبق در آنها کلمات کامل را تشکیل میدهند.
کلمه به معنای دنبالهای از حروف، ارقام و زیرخط (_) است.
این گزینه در صورت تعیین
.B \-x
بیاثر خواهد بود.
.TP
.BR \-x ", " \-\^\-line\-regexp
فقط انتخاب خطوطی که به طور دقیق و کامل با کل خط مطابقت دارند.
.SS "کنترل خروجی عمومی (General Output Control)"
.TP
.BR \-c ", " \-\^\-count
جلوگیری از خروجی عادی؛ به جای آن تعداد خطوط منطبق برای هر فایل ورودی چاپ میشود.
با گزینه
.BR \-v ", " \-\^\-invert\-match
تعداد خطوط نامنطبق شمارش میشود.
.TP
.BR \-\^\-color [ =\fIزمان\fP "], " \-\^\-colour [ =\fIزمان\fP ]
احاطه کردن رشتههای منطبق، خطوط منطبق، نام فایلها، شماره خطوط و جداکنندهها با توالیهای فرار رنگی برای نمایش در ترمینال.
رنگها توسط متغیر محیطی
.B GREP_COLORS
تعریف میشوند.
مقدار
.I زمان
میتواند
.BR never ،
.B always
یا
.B auto
باشد.
.TP
.BR \-L ", " \-\^\-files\-without\-match
جلوگیری از چاپ خروجی استاندارد؛ به جای آن فقط نام فایلهایی که هیچ تطابقی در آنها پیدا نشده چاپ میشود.
.TP
.BR \-l ", " \-\^\-files\-with\-matches
جلوگیری از چاپ خروجی معمول؛ به جای آن فقط نام فایلهایی که تطابق دارند چاپ میشود.
پویش هر فایل به محض یافتن اولین تطابق متوقف میشود.
.TP
.BI \-m " تعداد" "\fR,\fP \-\^\-max\-count=" تعداد
توقف خواندن فایل پس از یافتن
.I تعداد
خط منطبق.
اگر
.I تعداد
برابر ۰ باشد، بلافاصله متوقف میشود.
مقدار ۱- به منزله بینهایت است که حالت پیشفرض میباشد.
.TP
.BR \-o ", " \-\^\-only\-matching
چاپ کردن تنها بخشهای منطبق (غیر خالی) از یک خط منطبق، که هر کدام در یک خط خروجی مجزا نمایش داده میشوند.
.TP
.BR \-q ", " \-\^\-quiet ", " \-\^\-silent
حالت ساکت؛ هیچ متنی در خروجی استاندارد نوشته نمیشود.
به محض یافتن اولین تطابق، بلافاصله با وضعیت خروج صفر (موفق) خارج میشود، حتی اگر خطایی رخ داده باشد.
همچنین گزینه
.B \-s
را مشاهده کنید.
.TP
.BR \-s ", " \-\^\-no\-messages
نادیده گرفتن پیامهای خطا درباره فایلهای ناموجود یا غیرقابل خواندن.
.SS "کنترل پیشوند خطوط خروجی (Output Line Prefix Control)"
.TP
.BR \-b ", " \-\^\-byte\-offset
چاپ افست بایتی (مبتنی بر صفر) در فایل ورودی قبل از هر خط خروجی.
.TP
.BR \-H ", " \-\^\-with\-filename
چاپ نام فایل برای هر تطابق. این حالت زمانی که بیش از یک فایل برای جستجو مشخص شده باشد، پیشفرض است.
.TP
.BR \-h ", " \-\^\-no\-filename
جلوگیری از درج پیشوند نام فایل در خروجی. زمانی که فقط یک فایل (یا فقط ورودی استاندارد) وجود دارد، پیشفرض است.
.TP
.BI \-\^\-label= برچسب
نمایش ورودی استاندارد با نام
.IR برچسب .
برای مثال:
.BR "gzip \-cd foo.gz | grep \-\^\-label=foo \-H 'some pattern'" .
.TP
.BR \-n ", " \-\^\-line\-number
درج شماره خط (مبتنی بر یک) در ابتدای هر خط خروجی.
.TP
.BR \-T ", " \-\^\-initial\-tab
اطمینان از تراز بودن اولین نویسه محتوای خط با یک Tab جهت خوانایی بهتر پیشوندها.
.TP
.BR \-Z ", " \-\^\-null
چاپ بایت صفر (نویسه ASCII NUL) به جای نویسه بعد از نام فایل (به جای newline). برای استفاده همراه با
.B xargs \-0
بسیار کارآمد است.
.SS "کنترل خطوط پیرامونی (Context Line Control)"
.TP
.BI \-A " تعداد" "\fR,\fP \-\^\-after\-context=" تعداد
چاپ
.I تعداد
خط بعد از خطوط منطبق.
بین گروههای مجزا یک خط با جداکننده
.RB ( \-\^\- )
قرار میگیرد.
.TP
.BI \-B " تعداد" "\fR,\fP \-\^\-before\-context=" تعداد
چاپ
.I تعداد
خط قبل از خطوط منطبق.
.TP
.BI \-C " تعداد" "\fR,\fP \-" تعداد "\fR,\fP \-\^\-context=" تعداد
چاپ
.I تعداد
خط از بافت متن پیرامونی (قبل و بعد از خط منطبق).
.TP
.BI \-\^\-group\-separator= جداکننده
هنگام استفاده از
.BR \-A ،
.B \-B
یا
.BR \-C ،
چاپ
.I جداکننده
به جای
.B \-\^\-
بین گروهها.
.TP
.B \-\^\-no\-group\-separator
عدم چاپ جداکننده بین گروههای خطوط مجاور.
.SS "انتخاب فایل و دایرکتوری (File and Directory Selection)"
.TP
.BR \-a ", " \-\^\-text
پردازش فایل دودویی (باینری) همانند فایل متنی؛ معادل با
.BR \-\^\-binary\-files=text .
.TP
.BI \-\^\-binary\-files= نوع
اگر دادههای فایل نشان دهند که فایل باینری است، فرض میشود فایل از نوع
.I نوع
است. به طور پیشفرض مقدار
.I نوع
برابر با
.B binary
است که
.B grep
خروجی را پس از شناسایی دادههای باینری سرکوب کرده و پیامی مبنی بر تطابق فایل باینری نمایش میدهد.
اگر
.B without\-match
باشد، فایل نادیده گرفته میشود (معادل
.BR \-I ).
اگر
.B text
باشد، مانند فایل متنی پردازش میشود.
.TP
.BI \-D " اقدام" "\fR,\fP \-\^\-devices=" اقدام
اگر فایل ورودی یک دستگاه (device)، FIFO یا سوکت باشد، از
.I اقدام
مشخصشده استفاده میشود:
.B read
(پیشفرض، خواندن مانند فایل عادی) یا
.B skip
(نادیده گرفتن بیصدا).
.TP
.BI \-d " اقدام" "\fR,\fP \-\^\-directories=" اقدام
نحوه برخورد با دایرکتوریها:
.B read
(پیشفرض)،
.B skip
(رد شدن) یا
.B recurse
(خواندن بازگشتی تمام محتویات دایرکتوری؛ معادل
.BR \-r ).
.TP
.BI \-\^\-exclude= الگو
نادیده گرفتن فایلهایی که پسوند نام آنها با الگوی wildcard
.I الگو
مطابقت دارد.
.TP
.BI \-\^\-exclude\-from= فایل
نادیده گرفتن فایلهایی که با الگوهای خواندهشده از
.I فایل
مطابقت دارند.
.TP
.BI \-\^\-exclude\-dir= الگو
نادیده گرفتن دایرکتوریهایی که نام آنها با
.I الگو
تطابق دارد.
.TP
.BR \-I
پردازش فایل باینری به گونهای که انگار هیچ دادهٔ منطبقی ندارد؛ معادل با
.BR \-\^\-binary\-files=without\-match .
.TP
.BI \-\^\-include= الگو
جستجو تنها در فایلهایی که نام پایه آنها با
.I الگو
مطابقت دارد.
.TP
.BR \-r ", " \-\^\-recursive
خواندن بازگشتی تمام فایلهای زیر هر دایرکتوری. فقط در صورتی که پیوندهای نمادین در خط فرمان مشخص شده باشند دنبال میشوند.
.TP
.BR \-R ", " \-\^\-dereference\-recursive
خواندن بازگشتی تمام فایلهای زیر هر دایرکتوری و دنبال کردن تمامی پیوندهای نمادین (برخلاف
.BR \-r ).
.SS "سایر گزینهها (Other Options)"
.TP
.B \-\^\-line\-buffered
استفاده از بافر خطی در خروجی (ممکن است روی کارایی اثرگذار باشد).
.TP
.BR \-U ", " \-\^\-binary
رفتار با فایلها به عنوان باینری (مخصوص پلتفرمهای MS-DOS و MS-Windows جهت مدیریت خطوط CR/LF).
.TP
.BR \-z ", " \-\^\-null\-data
در نظر گرفتن دادههای ورودی و خروجی به عنوان خطوطی که با بایت صفر (ASCII NUL) خاتمه میابند به جای خط جدید.
.
.SH "عبارتهای منظم (REGULAR EXPRESSIONS)"
یک عبارت منظم، الگویی است که مجموعهای از رشتهها را توصیف میکند.
عبارتهای منظم به روشی مشابه عبارتهای حسابی ساخته میشوند، یعنی با استفاده از عملگرهای مختلف برای ترکیب عبارتهای کوچکتر.
.PP
دستور
.B grep
سه نوع مختلف از نحو عبارتهای منظم را پشتیبانی میکند:
عبارتهای منظم پایه (BRE)، عبارتهای منظم گسترده (ERE) و عبارتهای سازگار با پرل (PCRE).
در گنو
.B grep ،
نسخههای پایه و گسترده تنها نشانهگذاریهای متفاوتی برای قابلیتهای یکسان تطابق الگو هستند.
.PP
اجزای سازنده اصلی، عبارتهای منظمی هستند که با یک نویسه منفرد تطابق دارند.
اکثر نویسهها، از جمله تمام حروف و اعداد، با خودشان تطابق پیدا میکنند.
هر نویسه خاص (متاکاراکتر) با قرار گرفتن یک بکاسلش (\e) قبل از آن، معنی تحتاللفظی پیدا میکند.
نویسه نقطه
.RB ( . )
با هر نویسهٔ واحدی تطابق مییابد.
.SS "دستههای نویسه و عبارتهای قلاب (Character Classes)"
یک
.I "عبارت قلاب"
لیستی از نویسهها است که درون
.B [
و
.B ]
قرار میگیرد و با هر نویسه منفرد در آن لیست تطابق دارد.
اگر اولین نویسه
.B ^
باشد، با هر نویسهای که در لیست
.I نباشد
مطابقت مییابد.
به عنوان مثال،
.B [0123456789]
با هر رقم منفردی مطابقت دارد.
.PP
یک عبارت بازه شامل دو نویسه است که با یک خط تیره جدا شدهاند (مانند
.BR [a\-z] ).
همچنین دستههای نویسهای از پیش تعریفشده مانند
.BR [:alnum:] ،
.BR [:alpha:] ،
.BR [:digit:] ،
.BR [:lower:] ،
.BR [:upper:]
و
.B [:space:]
در دسترس هستند.
.SS "مهارها (Anchoring)"
علامت توان/هشتک
.RB ( ^ )
و علامت دلار
.RB ( $ )
به ترتیب با رشته خالی در ابتدای خط و انتهای خط مطابقت دارند.
.SS "تکرارها (Repetition)"
.PD 0
.TP
.B ?
مورد قبلی اختیاری است و حداکثر یک بار مطابقت مییابد.
.TP
.B *
مورد قبلی صفر یا چند بار مطابقت مییابد.
.TP
.B +
مورد قبلی یک یا چند بار مطابقت مییابد.
.TP
.BI { n }
مورد قبلی دقیقاً
.I n
بار مطابقت مییابد.
.TP
.BI { n ,}
مورد قبلی
.I n
بار یا بیشتر مطابقت مییابد.
.TP
.BI {, m }
مورد قبلی حداکثر
.I m
بار مطابقت مییابد (افزونه گنو).
.TP
.BI { n , m }
مورد قبلی حداقل
.I n
بار و حداکثر
.I m
بار مطابقت مییابد.
.PD
.SS "الحاق و جایگزینی (Concatenation and Alternation)"
دو عبارت منظم میتوانند به هم متصل شوند.
همچنین عملگر
.B |
برای انتخاب بین دو عبارت جایگزین استفاده میشود.
.SS "ارجاع به عقب و زیرعبارتها (Back-references)"
ارجاع به عقب
.BI \e n
که در آن
.I n
یک رقم منفرد است، با زیررشتهای که قبلاً توسط زیرعبارت درون پرانتز تطبیق داده شده مطابقت مییابد.
.
.SH "وضعیت خروج (EXIT STATUS)"
به طور معمول، اگر خطی انتخاب و منطبق شود وضعیت خروج ۰ است، اگر هیچ خطی منطبق نشود ۱ است و در صورت بروز خطا ۲ خواهد بود.
با این حال، در صورت استفاده از گزینه
.BR \-q ،
در صورت یافتن هر تطابقی خروجی ۰ خواهد بود.
.
.SH "متغیرهای محیطی (ENVIRONMENT)"
.TP
.B GREP_COLORS
رنگها و سایر ویژگیهای بصری مورد استفاده برای برجستهسازی بخشهای خروجی را پیکربندی میکند.
.TP
.B LC_ALL, LC_COLLATE, LANG
ترتیب مرتبسازی و بازههای حروف را تعیین میکند.
.TP
.B LC_ALL, LC_CTYPE, LANG
نوع نویسهها و کدگذاری متن (مانند UTF-8 یا ASCII) را مشخص میکند.
.TP
.B LC_ALL, LC_MESSAGES, LANG
زبان پیامهای خروجی برنامه را تعیین میکند.
.TP
.B POSIXLY_CORRECT
در صورت تنظیم،
.B grep
دقیقاً طبق استاندارد POSIX رفتار خواهد کرد.
.
.SH "نکات (NOTES)"
این صفحه راهنما به طور متناوب نگهداری میشود؛ مستندات کامل معمولاً بهروزتر هستند.
.
.SH "حق نشر (COPYRIGHT)"
حق نشر 1998-2000, 2002, 2005-2023 بنیاد نرمافزارهای آزاد (Free Software Foundation, Inc.)
.PP
این یک نرمافزار آزاد است؛ برای شرایط کپیبرداری به سورسکد مراجعه فرمایید.
هیچ ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص.
.
.SH "گزارش باگها (BUGS)"
گزارشهای باگ را به نشانی
.MT bug-grep@gnu.org
ارسال نمایید.
.
.SH "مثالها (EXAMPLE)"
مثال زیر محل و محتوای هر خطی که شامل \*(lqf\*(rq بوده و به \*(lq.c\*(rq ختم میشود را در میان تمام فایلهای دایرکتوری جاری که نامشان شامل \*(lqg\*(rq بوده و به \*(lq.h\*(rq ختم میشود نمایش میدهد:
.PP
.in +2n
.EX
$ \fBgrep\fP \-n \-\^\- 'f.*\e.c$' *g*.h /dev/null
.EE
.in
.
.SH "همچنین ببینید (SEE ALSO)"
.BR awk (1),
.BR cmp (1),
.BR diff (1),
.BR find (1),
.BR perl (1),
.BR sed (1),
.BR sort (1),
.BR xargs (1),
.BR read (2),
.BR pcre2 (3),
.BR regex (7)