| UGREP(1) | User Commands | UGREP(1) |
نام (NAME)
ugrep, ug - ابزار جستجوی الگو در فایلها
خلاصه دستور (SYNOPSIS)
ugrep [OPTIONS] [-i|-j]
[-Q|PATTERN] [-e PATTERN] [-N
PATTERN] [-f FILE]
[-E|-F|-G|-P|-Z] [-U] [-m
[MIN,][MAX]] [--bool [--files|--lines]]
[-r|-R|-1|...|-9|-10|-11|...]
[-t TYPES] [-g GLOBS]
[--sort[=KEY]]
[-q|-l|-c|-o] [-v] [-n] [-k]
[-b] [-A NUM] [-B NUM] [-C
NUM] [-y]
[--color[=WHEN]|--colour[=WHEN]]
[--pretty] [--pager[=COMMAND]]
[--hexdump|--csv|--json|--xml] [-I]
[-z] [--zmax=NUM] [FILE ...]
توضیحات (DESCRIPTION)
ابزار ugrep فایلهای ورودی دادهشده را جستجو کرده و فایلها و خطوطی را که با یک یا چند الگوی مشخصشده بهصورت عبارتهای منظم یا رشتههای ثابت مطابقت دارند، انتخاب میکند. هنگامی که عبارت منظم الگو با یک یا چند نویسه خط جدید تطابق داشته باشد، الگو با چندین خط ورودی مطابقت مییابد. یک الگوی خالی با تمام خطوط مطابقت دارد. هر خط ورودی که دستکم با یکی از الگوها همخوانی داشته باشد در خروجی استاندارد نوشته میشود.
دستور ug برای جستجوی تعاملی در نظر گرفته شده است و از یک فایل پیکربندی «.ugrep» واقع در دایرکتوری کاری یا در صورت پیدا نشدن، در دایرکتوری خانگی استفاده میکند؛ بخش CONFIGURATION را ببینید. دستور ug معادل ugrep --config --pretty --sort برای بارگذاری فایل پیکربندی، بهبود خروجی ترمینال و مرتبسازی فایلها بر اساس نام است.
دستورهای ugrep+ و ug+ مشابه دستورهای ugrep و ug هستند، اما در صورت نصب بودن ابزارهای فیلتر مربوطه، از فیلترهایی برای جستجو در فایلهای PDF، اسناد، کتابهای الکترونیکی و متادادههای تصاویر نیز استفاده میکنند.
فهرستی از فایلهای منطبق با گزینه -l (--files-with-matches) تولید میشود. گزینه -c (--count) تعداد خطوط منطبق را شمارش میکند. این گزینه در صورت ترکیب با گزینه -o، تعداد کل تطابقها را میشمارد. هنگامی که با گزینه -m1, (--min-count=1) ترکیب شود، فایلهای بدون تطابق را نادیده میگیرد.
نحو پیشفرض الگوها، شکل گسترشیافتهای از نحو POSIX ERE است، مشابه گزینه -E (--extended-regexp). برای راهنمایی درباره نحو الگو و نحوه استفاده از عملگرهای منطقی برای تعیین پرسوجوهای جستجوی بولی با گزینه -% (--bool) جهت تطابق خطوط و -%% (--bool --files) جهت تطابق فایلها، دستور ug --help regex را اجرا کنید. گزینههای -F (--fixed-strings)، -G (--basic-regexp) و -P (--perl-regexp) نحوهای دیگر الگو را مشخص میکنند.
گزینه -i (--ignore-case) بزرگی و کوچکی حروف را در الگوها نادیده میگیرد. گزینه -j (--smart-case) تنها در صورتی -i را فعال میکند که الگوهای جستجو با حروف کوچک مشخص شده باشند.
جستجوی فازی (تقریبی) با گزینه -Z (--fuzzy) همراه با یک آرگومان اختیاری برای کنترل درج، حذف و/یا جایگزینی نویسهها مشخص میشود. برای راهنمایی درباره جستجوی فازی، دستور ug --help fuzzy را امتحان کنید.
توجه داشته باشید که الگوی «.» با هر نویسهای بهجز خط جدید مطابقت دارد. الگوی «\n» با نویسه خط جدید مطابقت پیدا میکند. با الگوهایی که با یک یا چند نویسه خط جدید تطابق دارند، میتوان چندین خط را تطبیق داد.
الگوی خالی "" با تمام خطوط تطابق دارد. سایر الگوهای تطابقدهنده تهی چنین نیستند؛ برای مثال، الگوی «a*» با یک یا چند 'a' مطابقت خواهد داشت. گزینه -Y برای سازگاری با سایر ابزارهای grep، تطابقهای خالی را اجبار میکند.
گزینه -f FILE الگوهای مشخصشده در FILE را تطبیق میدهد.
بهطور پیشفرض، الگوهای یونیکد تطبیق داده میشوند. گزینه -U (--ascii یا --binary) تطبیق یونیکد را برای تطبیق الگوی ASCII و باینری غیرفعال میکند. تطبیق غیر یونیکد کارایی بالاتری دارد.
ابزار ugrep ورودیهایی با قالبهای مختلف کدگذاری را میپذیرد و خروجی را به UTF-8 استانداردسازی میکند. هنگامی که یک علامت ترتیب بایت (BOM) یونیکد در ورودی وجود داشته باشد، ورودی بهطور خودکار نرمال میشود. قالب کدگذاری ورودی را میتوان با گزینه --encoding مشخص کرد.
اگر هیچ آرگومان FILE مشخص نشده باشد و ورودی استاندارد از یک ترمینال خوانده شود، جستجوهای بازگشتی بهگونهای انجام میشوند که گویی -r مشخص شده است. برای اجبار خواندن از ورودی استاندارد، `-' را به عنوان آرگومان FILE تعیین کنید.
دایرکتوریهایی که به عنوان آرگومان FILE مشخص شدهاند، بدون پیمایش عمیقتر در زیردایرکتوریها جستجو میشوند، مگر اینکه -R، -r یا -2...-9 برای جستجوی بازگشتی زیردایرکتوریها (تا عمق مشخصشده) تعیین شده باشد.
گزینه -I (--ignore-binary) فایلهای باینری را نادیده میگیرد. فایل باینری فایلی با محتوای غیرمتنی است. فایلی با بایتهای صفر (NUL) یا قالببندی نامعتبر UTF، باینری در نظر گرفته میشود.
فایلها و دایرکتوریهای پنهان در جستجوهای بازگشتی نادیده گرفته میشوند. گزینه -. (--hidden) فایلها و دایرکتوریهای پنهان را در جستجوهای بازگشتی لحاظ میکند.
برای تطابق نام فایلها جهت جستجو و نام دایرکتوریها برای پیمایش بازگشتی، یک یا چند گزینه از موارد زیر را میتوان مشخص کرد. گزینه -O یک یا چند پسوند نام فایل را برای تطابق تعیین میکند. گزینه -t یک یا چند نوع فایل را برای جستجو تعیین میکند (-t list فهرستی از انواع فایل را خروجی میدهد). گزینه -g یک الگوی glob به سبک gitignore را برای تطابق نام فایلها مشخص میکند. گزینه --ignore-files فایلی حاوی الگوهای glob سبک gitignore را برای نادیده گرفتن دایرکتوریها و فایلها مشخص میکند. برای راهنمایی درباره تطابق نام فایل و دایرکتوری، دستور ug --help globs را امتحان کنید. همچنین بخش GLOBBING را ببینید.
فایلهای فشرده و آرشیوها با گزینه -z (--decompress) جستجو میشوند. در صورت استفاده به همراه گزینه --zmax=NUM، محتویات فایلهای فشرده و آرشیوهای ذخیرهشده درون آرشیوها تا NUM سطح جستجو میشوند.
خروجی برای نمایش در ترمینال با گزینه --pretty بهبود مییابد، که بهطور پیشفرض در دستور ug فعال است.
یک رابط کاربری ترمینال پرسوجو (TUI) با -Q (--query) باز میشود تا الگوهای جستجو بهصورت تعاملی مشخص شده و نتایج جستجو مشاهده شوند. با داشتن یک آرگومان PATTERN، برای راهاندازی TUI پرسوجو با الگوی مشخصشده به -e PATTERN نیاز است.
یک صفحهبندیکننده (pager) خروجی ترمینال با --pager فعال میشود که یک COMMAND اختیاری را برای مشاهده خروجی میپذیرد.
خروجی سفارشیشده با گزینه --format یا --replace تولید میشود. برای راهنمایی درباره قالببندی سفارشی خروجی، دستور ug --help format را امتحان کنید. همچنین بخش FORMAT را ببینید. قالبهای از پیشتعریفشده شامل CSV با گزینه --csv، JSON با گزینه --json، و XML با گزینه --xml است. خروجی تخلیه هگزادسیمال با گزینه -X (--hex) یا با گزینه --hexdump برای سفارشیسازی خروجی داده میشود.
یک «--» پایان گزینهها را مشخص میکند؛ باقی پارامترها آرگومانهای FILE در نظر گرفته میشوند که اجازه میدهد نام فایلها با نویسه «-» آغاز شود.
در صورت امکان، گزینههای طولانی ممکن است با «--no-» برای غیرفعالسازی شروع شوند.
دستور ug --help WHAT راهنماییهای مربوط به گزینههای مرتبط با WHAT را نمایش میدهد.
گزینههای زیر در دسترس هستند:
- -A NUM, --after-context=NUM
- تعداد NUM خط از بافت متنی پسین بعد از خطوط منطبق را در خروجی نمایش میدهد. بین گروههای متوالی تطابقها یک --group-separator قرار میدهد. اگر -o مشخص شده باشد، تطابق را همراه با بافت متنی بهگونهای خروجی میدهد که در NUM ستون پس از تطابق جا شود یا تطابق را کوتاه میکند. همچنین گزینههای -B، -C و -y را ببینید.
- -a, --text
- پردازش فایل باینری بهگونهای که گویی متنی است. این معادل گزینه --binary-files=text است. این گزینه ممکن است دادههای نامفهوم باینری را در ترمینال خروجی دهد، که در صورت تفسیر برخی از آنها به عنوان دستورات ترمینال توسط راهانداز ترمینال، میتواند پیامدهای مشکلسازی داشته باشد.
- --all, -@
- جستجوی تمام فایلها بهجز فایلهای پنهان: محدودیتهای پیشین جستجوی فایل و دایرکتوری را لغو کرده و در صورت مشخص شدن --ignore-binary و --ignore-files آنها را لغو میکند. محدودیتهای مشخصشده بعد از این گزینه (یعنی در سمت راست آن) همچنان اعمال میشوند. به عنوان مثال، -@I تمام فایلهای غیرباینری را جستجو میکند و -@. تمام فایلها از جمله فایلهای پنهان را جستجو میکند. توجه داشته باشید که فایلها و دایرکتوریهای پنهان هرگز جستجو نمیشوند، مگر اینکه گزینه -. یا --hidden مشخص شده باشد.
- --and [-e] PATTERN
- یک PATTERN اضافی که باید مطابقت داشته باشد را مشخص میکند. الگوهای اضافی -e PATTERN پس از این گزینه، به عنوان الگوی جایگزین برای تطابق در نظر گرفته میشوند؛ به این معنی که هر -e به عنوان یک الگوی OR درون AND تفسیر میشود. برای مثال، -e A -e B --and -e C -e D خطوطی را که شامل ('A' یا 'B') و ('C' یا 'D') باشند مطابقت میدهد. توجه داشته باشید که چند -e PATTERN پیوندهای جایگزینی هستند که محکمتر از --and به یکدیگر متصل میشوند. گزینه --stats الگوهای جستجوی اعمالشده را نمایش میدهد. همچنین گزینههای --not، --andnot، --bool، --files و --lines را ببینید.
- --andnot [-e] PATTERN
- گزینههای --and و --not را با هم ترکیب میکند. همچنین گزینههای --and، --not و --bool را ببینید.
- -B NUM, --before-context=NUM
- تعداد NUM خط از بافت متنی پیشین قبل از خطوط منطبق را در خروجی نمایش میدهد. بین گروههای متوالی تطابقها یک --group-separator قرار میدهد. اگر -o مشخص شده باشد، تطابق را همراه با بافت متنی بهگونهای خروجی میدهد که در NUM ستون پیش از تطابق جا شود یا تطابق را کوتاه میکند. همچنین گزینههای -A، -C و -y را ببینید.
- -b, --byte-offset
- آفست بر حسب بایت برای تطابق الگو، در ابتدای خط منطبق مربوطه نمایش داده میشود. هنگامی که -u یا --ungroup مشخص شده باشد، آفست را برای هر الگوی منطبقشده در همان خط نمایش میدهد. آفستهای بایتی برای ورودیهای ASCII، UTF-8 و باینری خام دقیق هستند. در غیر این صورت، آفست در ورودی نرمالشده به UTF-8 نمایش داده میشود.
- --binary-files=TYPE
- جستجو و گزارش تطابقهای الگو در فایلهای باینری را کنترل میکند. مقدار TYPE میتواند `binary`، `without-match`، `text`، `hex` و `with-hex` باشد. مقدار پیشفرض `binary` است که فایلهای باینری را جستجو کرده و تطابق را بدون نمایش خود تطابق گزارش میکند. مقدار `without-match` تطابقهای باینری را نادیده میگیرد. مقدار `text` با تمام فایلهای باینری مانند فایل متنی رفتار میکند، که ممکن است خروجی نامفهوم باینری در ترمینال ایجاد کند؛ در صورتی که راهانداز ترمینال بخشی از آن را به عنوان دستور تفسیر کند میتواند عواقب مشکلسازی داشته باشد. مقدار `hex` تمام تطابقها را در قالب شانزدهشانزدهی (هگزادسیمال) گزارش میکند. مقدار `with-hex` تنها تطابقهای باینری را به صورت شانزدهشانزدهی گزارش داده و تطابقهای متنی را دستنخورده باقی میگذارد. فایلهای حاوی بایتهای NUL (صفر) باینری هستند و فایلهای دارای کدگذاری نامعتبر UTF نیز باینری در نظر گرفته میشوند، مگر اینکه گزینه -U، --ascii یا --binary مشخص شده باشد. گزینههای کوتاه عبارتند از -a، -I، -W، -X..TP --bool, -%, -%% الگوهای پرسوجوی بولی (Boolean) را مشخص میکند. یک الگوی پرسوجوی بولی از عملگرهای `AND`، `OR`، `NOT` و گروهبندی با `(` `)` تشکیل میشود. فاصلهگذاری بین زیرالگوها معادل `AND`، نویسه `|` معادل `OR` و یک `-` معادل `NOT` است. عملگر `OR` تقدم بیشتری نسبت به `AND` دارد. برای نمونه، --bool 'A|B C|D' سطرهایی را تطابق میدهد که دارای (`A` یا `B`) و (`C` یا `D`) باشند، --bool 'A -B' سطرهایی با `A` و بدون `B` را تطابق میدهد. عملگرهای `AND`، `OR`، `NOT` نیازمند فاصلهگذاری صحیح هستند. برای نمونه، --bool 'A OR B AND C OR D' سطرهایی با (`A` یا `B`) و (`C` یا `D`) را تطابق میدهد، --bool 'A AND NOT B' سطرهایی با `A` بدون `B` را مطابقت میدهد. زیرالگوهای درون گیومه بهصورت رشتههای تحتاللفظی تطابق داده میشوند. برای نمونه، --bool 'A "AND"|"OR"' سطرهایی با `A` و همچنین یکی از دو عبارت `AND` یا `OR` را مطابقت میدهد. از پرانتزها برای گروهبندی استفاده میشود. برای نمونه، --bool '(A B)|C' سطرهایی با `A` و `B`، یا سطرهایی با `C` را مطابقت میدهد. توجه داشته باشید که تمام زیرالگوها در یک الگوی پرسوجوی بولی عبارت منظم هستند، مگر اینکه -F مشخص شده باشد. گزینههای -E، -F، -G، -P و -Z میتوانند با --bool ترکیب شوند تا زیرالگوها را بهصورت رشتهها یا عبارتهای منظم مطابقت دهند (-E پیشفرض است). این گزینه برای الگوهای -f FILE اعمال نمیشود. گزینه کوتاه دوگانه -%% گزینههای --bool و --files را فعال میکند. گزینه --stats الگوهای جستجوی بولی اعمالشده را نمایش میدهد. همچنین گزینههای --and، --andnot، --not، --files و --lines را ببینید.
- --break
- یک شکست خط میان نتایج فایلهای مختلف اضافه میکند. این گزینه با --heading فعال میشود.
- -C NUM, --context=NUM
- به تعداد NUM سطر از بافت متنی (context) پیشین و پسین اطراف هر سطر منطبق را خروجی میدهد. یک --group-separator بین گروههای متوالی تطابقها قرار میدهد. اگر -o مشخص شده باشد، تطابق را همراه با بافت متنی به اندازه NUM ستون قبل و بعد از تطابق خروجی میدهد یا تطابق را کوتاه میکند. همچنین گزینههای -A، -B و -y را ببینید.
- -c, --count
- تنها شمارش سطرهای انتخابشده در خروجی استاندارد نوشته میشود. هنگامی که -o یا -u مشخص شده باشد، تعداد الگوهای مطابقتیافته را میشمارد. هنگامی که -v مشخص شده باشد، تعداد سطرهای غیرمنطبق را میشمارد. هنگامی که -m1, (همراه با ویرگول یا --min-count=1) مشخص شده باشد، تنها فایلهای منطبق را بدون خروجی دادن موارد با صفر تطابق شمارش میکند.
- --color[=WHEN], --colour[=WHEN]
- متن منطبق را با رنگهای مشخصشده با گزینه --colors یا متغیرهای محیطی GREP_COLOR یا GREP_COLORS متمایز میکند. WHEN میتواند `never`، `always` یا `auto` باشد؛ که در آن `auto` تطابقها را تنها زمانی که خروجی در ترمینال باشد رنگآمیزی میکند. پیشفرض `auto` است.
- --colors=COLORS, --colours=COLORS
- از COLORS برای رنگآمیزی متن استفاده میکند. COLORS فهرستی جداشده با دونقطه از یک یا چند پارامتر است: `sl=` (سطر انتخابشده)، `cx=` (سطر بافت متن)، `mt=` (متن منطبق)، `ms=` (تطابق انتخابشده)، `mc=` (تطابق بافت متن)، `fn=` (نام فایل)، `ln=` (شماره سطر)، `cn=` (شماره ستون)، `bn=` (انحراف بایتی)، `se=` (جداساز)، `qp=` (اعلان TUI)، `qe=` (خطاهای TUI)، `qr=` (عبارت منظم TUI)، `qm=` (فرانویسههای عبارت منظم TUI)، `ql=` (فهرستها و نویسههای لفظی عبارت منظم TUI)، `qb=` (آکولادهای عبارت منظم TUI). مقادیر پارامترها کدهای رنگ ANSI SGR یا `k` (سیاه)، `r` (قرمز)، `g` (سبز)، `y` (زرد)، `b` (آبی)، `m` (ارغوانی)، `c` (فیروزهای)، `w` (سفید) هستند، یا برای بدون رنگ بودن خالی رها میشوند. حروف بزرگ رنگهای پسزمینه را مشخص میکنند. یک `+` رنگ را روشن (bright) تعیین میکند. یک رنگ پیشزمینه و یک رنگ پسزمینه میتوانند با ویژگیهای قلم `n` (عادی)، `f` (کمرنگ)، `h` (برجسته)، `i` (وارون)، `u` (زیرخط) ترکیب شوند. پارامتر `hl` پیوندهای نام فایل را فعال میکند. پارامتر `rv` هنگامی که گزینه -v مشخص شده باشد، پارامترهای `sl=` و `cx=` را معکوس میکند. این گزینه GREP_COLORS را بهطور انتخابی لغو میکند. کدهای تکپارامتری موروثی grep نیز میتوانند مشخص شوند؛ برای نمونه --colors='7;32' یا --colors=ig برای تنظیم ms (تطابق انتخابشده).
- --config[=FILE], ---[FILE]
- از پیکربندی FILE استفاده میکند. فایل پیشفرض `.ugrep` است. ابتدا دایرکتوری کاری برای FILE بررسی میشود، سپس دایرکتوری خانگی. گزینههای مشخصشده در FILE پیکربندی ابتدا پردازش میشوند، و سپس گزینههای باقیمانده در خط فرمان ارزیابی میگردند. دستور ug در صورت وجود، بهطور خودکار یک فایل پیکربندی `.ugrep` را بارگیری میکند، مگر اینکه --config=FILE یا --no-config مشخص شده باشد.
- --no-config
- فایل پیکربندی پیشفرض ugrep. را بهطور خودکار بارگیری نمیکند.
- --no-confirm
- عملیاتها را در TUI پرسوجوی -Q تأیید نمیگیرد. پیشفرض تأیید گرفتن است.
- --cpp
- تطابقهای فایل را در قالب C++ خروجی میدهد. همچنین گزینههای --format و -u را ببینید.
- --csv
- تطابقهای فایل را در قالب CSV خروجی میدهد. هنگامی که -H، -n، -k یا -b مشخص شده باشد، مقادیر بیشتری خروجی داده میشوند. همچنین گزینههای --format و -u را ببینید.
- -D ACTION, --devices=ACTION
- اگر یک فایل ورودی یک دستگاه، FIFO یا سوکت باشد، از ACTION برای پردازش آن استفاده میکند. هنگامی که ACTION برابر `skip` باشد، دستگاهها نادیده گرفته میشوند. هنگامی که ACTION برابر `read` باشد، دستگاهها درست مانند فایلهای معمولی خوانده میشوند. مقدار پیشفرض ACTION برابر `skip` است، بهجز دستگاههایی که به عنوان آرگومان در خط فرمان مشخص شدهاند، که میتوان آنها را بهصراحت با -Dskip نادیده گرفت.
- -d ACTION, --directories=ACTION
- اگر یک فایل ورودی یک دایرکتوری باشد، از ACTION برای پردازش آن استفاده میکند. هنگامی که ACTION برابر `read` باشد، هنگام خوانده شدن دایرکتوریها به عنوان ورودی هشدار میدهد. هنگامی که ACTION برابر `recurse` باشد، تمام فایلهای زیر هر دایرکتوری را بهصورت بازگشتی میخواند و پیوندهای نمادین را فقط در صورتی که در خط فرمان باشند دنبال میکند. این معادل گزینه -r است. هنگامی که ACTION برابر `dereference-recurse` باشد، تمام فایلهای زیر هر دایرکتوری را بهصورت بازگشتی با دنبال کردن پیوندهای نمادین میخواند. این معادل گزینه -R است. هنگامی که هیچ فایل یا دایرکتوریای در خط فرمان مشخص نشده باشد، مقدار پیشفرض ACTION برابر `recurse` یا گزینه -r است.
- --delay=DELAY
- تأخیر پاسخدهی کلید را در -Q تنظیم میکند. مقدار پیشفرض 3 برای ۳۰۰ میلیثانیه است.
- --depth=[MIN,][MAX], -1, -2, -3, ... -9, -10, -11, ...
- جستجوهای بازگشتی را از عمق MIN تا MAX سطح دایرکتوری محدود میکند؛ که در آن -1 (--depth=1) مسیر مشخصشده را بدون ورود بازگشتی به زیردایرکتوریها جستجو میکند. شکلهای کوتاه -3 -5، -3-5 و -3,5 بین ۳ تا ۵ سطح عمق را جستجو میکنند. اگر -R یا -r مشخص نشده باشد، -r را فعال میکند.
- --dotall
- نقطه `.` در عبارتهای منظم با هر چیزی، از جمله نویسه خط جدید، تطابق مییابد. توجه داشته باشید که `.*` با تمام ورودی مطابقت مییابد و نباید استفاده شود.
- -E, --extended-regexp
- الگوها را به عنوان عبارتهای منظم گسترشیافته (ERE) تفسیر میکند. این پیشفرض است.
- -e PATTERN, --regexp=PATTERN
- یک PATTERN را برای جستجو در ورودی مشخص میکند. یک سطر ورودی در صورتی انتخاب میشود که با هر یک از الگوهای مشخصشده مطابقت داشته باشد. این گزینه زمانی مفید است که چندین گزینه -e برای تعیین چندین الگو به کار روند، یا هنگامی که یک الگو با خط تیره (`-`) آغاز شود، یا برای مشخص کردن یک الگو پس از گزینه -f یا پس از آرگومانهای FILE.
- --encoding=ENCODING
- قالب کدگذاری ورودی. مقدار پیشفرض ENCODING برابر binary یا UTF-8 است که با هر دو یکسان رفتار میشود؛ بنابراین --encoding=binary تأثیری ندارد. این را با گزینههای -U، --ascii یا --binary مقایسه کنید که تطابق PATTERN را بهصورت دودویی خام مشخص میکنند. مقدار ENCODING میتواند یکی از موارد زیر باشد: `binary`، `ASCII`، `UTF-8`، `UTF-16`، `UTF-16BE`، `UTF-16LE`، `UTF-32`، `UTF-32BE`، `UTF-32LE`، `LATIN1`، `ISO-8859-1`، `ISO-8859-2`، `ISO-8859-3`، `ISO-8859-4`، `ISO-8859-5`، `ISO-8859-6`، `ISO-8859-7`، `ISO-8859-8`، `ISO-8859-9`، `ISO-8859-10`، `ISO-8859-11`، `ISO-8859-13`، `ISO-8859-14`، `ISO-8859-15`، `ISO-8859-16`، `MAC`، `MACROMAN`، `EBCDIC`، `CP437`، `CP850`، `CP858`، `CP1250`، `CP1251`، `CP1252`، `CP1253`، `CP1254`، `CP1255`، `CP1256`، `CP1257`، `CP1258`، `KOI8-R`، `KOI8-U`، `KOI8-RU`، `null-data`.
- --exclude=GLOB
- فایلهایی را که نامشان با GLOB مطابقت دارد مستثنی میکند، مشابه -g ^GLOB. عبارت GLOB میتواند از **، *، ? و [...] به عنوان نویسههای عام و از \ برای نقل تحتاللفظی نویسه عام یا نویسه بکاسلش استفاده کند. هنگامی که GLOB شامل `/` باشد، نامهای کامل مسیر مطابقت داده میشوند؛ در غیر این صورت نامهای پایه مطابقت داده خواهند شد. هنگامی که GLOB با یک `/` پایان یابد، دایرکتوریها بهگونهای مستثنی میشوند که گویی --exclude-dir مشخص شده است؛ در غیر این صورت فایلها مستثنی میشوند. توجه داشته باشید که الگوهای --exclude بر الگوهای --include اولویت دارند. GLOB باید درون گیومه قرار گیرد تا از بسط پوسته (globbing) جلوگیری شود. این گزینه ممکن است تکرار شود.
- --exclude-dir=GLOB
- دایرکتوریهایی را که نامشان با GLOB مطابقت دارد از جستجوهای بازگشتی مستثنی میکند، مشابه -g ^GLOB/. عبارت GLOB ممکن است از **، *، ? و [...] به عنوان نویسههای عام و از \ برای نقل تحتاللفظی نویسه عام یا نویسه بکاسلش استفاده کند. هنگامی که GLOB شامل `/` باشد، نامهای کامل مسیر مطابقت داده میشوند؛ در غیر این صورت نامهای پایه مطابقت داده خواهند شد. توجه داشته باشید که الگوهای --exclude-dir بر الگوهای --include-dir اولویت دارند. GLOB باید درون گیومه قرار گیرد تا از بسط پوسته جلوگیری شود. این گزینه ممکن است تکرار شود.
- --exclude-from=FILE
- الگوهای glob را از FILE میخواند و فایلها و دایرکتوریهایی را که نامشان با یک یا چند glob مطابقت دارد نادیده میگیرد. یک glob ممکن است از **، *، ? و [...] به عنوان نویسههای عام و از \ برای نقل تحتاللفظی نویسه عام یا نویسه بکاسلش استفاده کند. هنگامی که یک glob شامل `/` باشد، نامهای کامل مسیر مطابقت داده میشوند؛ در غیر این صورت نامهای پایه مطابقت داده خواهند شد. هنگامی که یک glob با یک `/` پایان یابد، دایرکتوریها بهگونهای مستثنی میشوند که گویی --exclude-dir مشخص شده است؛ در غیر این صورت فایلها مستثنی میشوند. یک glob که با `!` آغاز شود، با گنجاندن فایلهای منطبق، استثناهای مشخصشده پیشین را لغو میکند. سطرهایی که در FILE با `#` شروع میشوند نادیده گرفته میشوند. هنگامی که FILE برابر `-` باشد، ورودی استاندارد خوانده میشود. این گزینه ممکن است تکرار شود. همچنین گزینه مرتبط --ignore-files را برای استثناهای مختص زیردایرکتوریها ببینید.
- --exclude-fs=MOUNTS
- سیستمهای فایلی را که توسط MOUNTS مشخص شدهاند از جستجوهای بازگشتی مستثنی میکند. MOUNTS فهرستی جداشده با ویرگول از نقاط اتصال یا مسیرهای دایرکتوریها است. هنگامی که MOUNTS مشخص نشده باشد، فقط به سیستمهای فایلی مرتبط با اهداف جستجوی فایل و دایرکتوری مشخصشده وارد میشود، یعنی تمام سیستمهای فایل دیگر را مستثنی میکند. توجه داشته باشید که --exclude-fs=MOUNTS بر --include-fs=MOUNTS اولویت دارد. این گزینه ممکن است تکرار شود..TP -F, --fixed-strings الگو را به عنوان مجموعهای از رشتههای ثابت، جداشده با خط جدید تفسیر میکند که هر کدام از آنها قابل مطابقت است. این گزینه باعث میشود ugrep رفتاری همانند fgrep داشته باشد. اگر یک PATTERN مشخص شده باشد، یا از -e PATTERN یا -N PATTERN استفاده شود، این گزینه بر الگوهای -f FILE تأثیری نخواهد داشت تا به الگوهای -f FILE اجازه دهد دامنه جستجوی PATTERN را محدودتر یا گستردهتر کنند.
- -f FILE, --file=FILE
- الگوهای جداشده با خط جدید را از FILE میخواند. فاصلههای خالی در الگوها مهم و معنادار هستند. خطهای خالی در FILE نادیده گرفته میشوند. اگر FILE وجود نداشته باشد، از متغیر محیطی GREP_PATH به عنوان مسیر FILE استفاده میشود. در صورت شکست، در مسیر /usr/local/share/ugrep/patterns به دنبال FILE میگردد. هنگامی که FILE برابر با `-' باشد، ورودی استاندارد خوانده میشود. فایلهای خالی فاقد الگو هستند؛ بنابراین چیزی با آنها تطبیق داده نمیشود. این گزینه میتواند تکرار شود.
- --files, -%%
- حالت تطابق بولی فایل، برعکس --lines. هنگام ترکیب با گزینه --bool، در صورتی که همه شرایط بولی برآورده شوند، فایل تطبیق داده میشود. برای مثال، --bool --files 'A B|C -D' فایلی را مطابقت میدهد که در آن برخی از خطها با `A' مطابقت داشته باشند، برخی دیگر با `B' یا `C'، و هیچ خطی با `D' تطابق نداشته باشد. همچنین گزینههای --and، --andnot، --not، --bool و --lines را ببینید. گزینه کوتاه دوگانه -%% گزینههای --bool --files را فعال میکند.
- --filter=COMMANDS
- پیش از جستجو، ابتدا فایلها را از طریق COMMANDS مشخصشده فیلتر میکند. COMMANDS فهرستی جداشده با کاما از `exts:command arguments' است، که در آن `exts' فهرستی جداشده با کاما از پسوندهای نام فایل و `command' یک ابزار فیلتر است. فایلهایی که با یکی از پسوندهای `exts' مطابقت داشته باشند فیلتر میشوند. نماد `*' با هر فایلی مطابقت دارد. دستور `command' مشخصشده میتواند شامل آرگومانهایی باشد که با فاصله از هم جدا شدهاند. برای دربرگرفتن فاصله، کاما یا نماد `%'، آرگومان میتواند درون گیومه قرار گیرد. آرگومان `%' به نام مسیر مورد جستجو بسط مییابد. برای مثال، --filter='pdf:pdftotext % -' فایلهای PDF را جستجو میکند. هنگام جستجوی ورودی استاندارد، `%' به یک `-' بسط مییابد. هنگامی که `%' مشخص نشده باشد، دستور فیلتر باید از ورودی استاندارد بخواند و در خروجی استاندارد بنویسد. گزینه --label=.ext ممکن است برای مشخص کردن پسوند `ext' در زمان جستجوی ورودی استاندارد استفاده شود. توجه داشته باشید که تطابق پسوند نام فایل در `exts' به بزرگی و کوچکی حروف حساس نیست. این گزینه میتواند تکرار شود.
- --filter-magic-label=[+]LABEL:MAGIC
- برچسب LABEL را به فایلهایی اختصاص میدهد که امضای «بایتهای جادویی» (magic bytes) آنها با الگوی عبارت باقاعده MAGIC مطابقت دارد. تنها فایلهایی که فاقد پسوند نام فایل هستند برچسبگذاری میشوند، مگر اینکه +LABEL مشخص شده باشد. هنگامی که LABEL با پسوند مشخصشده در --filter=COMMANDS مطابقت داشته باشد، دستور متناظر فراخوانی میشود. این گزینه میتواند تکرار شود.
- --format=FORMAT
- تطابقها را در قالب FORMAT خروجی میدهد. برای مثال، --format='%f:%n:%O%~' خطهای منطبق `%O' را همراه با نام فایل `%f' و شماره خط `%n' و به دنبال آن یک خط جدید `%~' چاپ میکند. اگر -P مشخص شده باشد، FORMAT میتواند شامل `%1' تا `%9'، `%[NUM]#' و `%[NAME]#' باشد تا گروههای تسخیرشده را در خروجی چاپ کند. دو علامت `%%' یک نماد `%' خروجی میدهد. برای جزئیات به `ugrep --help format' و بخش FORMAT در `man ugrep' مراجعه کنید. هنگامی که گزینه -o مشخص شود، گزینه -u نیز فعال میشود. گزینههای زمینه شامل -A، -B، -C و -y نادیده گرفته میشوند.
- --free-space
- فاصلهگذاری (فاصلهها و تبها) در عبارات باقاعده نادیده گرفته میشود.
- --from=FILE
- نام مسیرهای اضافی فایلها جهت جستجو را از FILE میخواند. هنگامی که FILE برابر با `-' باشد، ورودی استاندارد خوانده میشود. این گزینه در ترکیب با `find ... -print | ugrep --from=- ...' برای جستجوی فایلهای مشخص کاربردی است.
- -G, --basic-regexp
- الگوها را به عنوان عبارات باقاعده پایه (BRE) تفسیر میکند.
- -g GLOBS, --glob=GLOBS, --iglob=GLOBS
- تنها فایلهایی را جستجو میکند که نام آنها با فهرست جداشده با کاما از GLOBS مشخص مطابقت دارد؛ همانند --include='glob' به ازای هر `glob' در GLOBS. هنگامی که قبل از یک `glob' علامت `!' یا `^' قرار گیرد، فایلهایی که نامشان با `glob' مطابقت دارد نادیده گرفته میشوند، همانند --exclude='glob'. هنگامی که `glob' حاوی یک `/' باشد، نام مسیرهای کامل مطابقت داده میشوند و چنانچه گزینههای -d، -r یا -R از قبل مشخص نشده باشند، گزینه -r برای پیمایش بازگشتی در دایرکتوریها فعال میشود. در غیر این صورت، نام پایهها (basenames) مطابقت داده میشوند. هنگامی که `glob' با یک `/' پایان یابد، دایرکتوریها مطابقت داده میشوند، همانند --include-dir='glob' و --exclude-dir='glob'. وجود `./' یا فقط `/' در ابتدا با دایرکتوری کاری مطابقت مییابد. گزینه --iglob=GLOBS تطابق نام را بدون حساسیت به بزرگی و کوچکی حروف انجام میدهد. این گزینه میتواند تکرار شود و با گزینههای -M، -O و -t ترکیب شود. برای جزئیات بیشتر به `ugrep --help globs' و بخش GLOBBING در `man ugrep' مراجعه کنید.
- --glob-ignore-case
- انجام تطابق glob به صورت عمومی و بدون حساسیت به بزرگی و کوچکی حروف.
- --group-separator[=SEP]
- استفاده از SEP به عنوان جداکننده گروه برای گزینههای زمینه -A، -B و -C. مقدار پیشفرض دو خط فاصله متوالی (`--') است.
- --no-group-separator
- خط جداکننده گروه را برای گزینههای زمینه -A، -B و -C از خروجی حذف میکند.
- -H, --with-filename
- همیشه نام فایل را همراه با خطهای خروجی چاپ میکند. این حالت پیشفرض در زمانی است که بیش از یک فایل برای جستجو وجود داشته باشد.
- -h, --no-filename
- هرگز نام فایل را همراه با خطهای خروجی چاپ نمیکند. این حالت پیشفرض در زمانی است که تنها یک فایل (یا فقط ورودی استاندارد) برای جستجو وجود داشته باشد.
- --heading, -+
- گروهبندی تطابقها بر اساس هر فایل. یک عنوان سربرگ و یک شکست خط میان نتایج فایلهای مختلف اضافه میکند. هنگامی که خروجی به پایانه فرستاده میشود، این گزینه توسط --pretty فعال میگردد.
- --help [WHAT], -? [WHAT]
- در صورت تعیین WHAT، پیام راهنمای مربوط به گزینههای مرتبط با آن را نمایش میدهد. علاوه بر این، `--help regex' مروری کلی بر عبارات باقاعده، `--help globs' مروری بر ساختار و قواعد glob، `--help fuzzy' جزئیات جستجوی فازی، و `--help format' فهرستی از فیلدهای گزینه --format=FORMAT را نمایش میدهد.
- --hexdump[=[1-8][a][bch][A[NUM]][B[NUM]][C[NUM]]]
- خروجی دادن تطابقها در ۱ تا ۸ ستون از ۸ اوکتت هگزادسیمال. مقدار پیشفرض ۲ ستون یا ۱۶ اوکتت در هر خط است. آرگومان `a' برای تمام خطهای هگزی که عیناً مشابه خط هگز قبلی هستند یک `*' چاپ میکند، `b' تمام فاصلهها را حذف میکند، `c' ستون نویسهها را حذف میکند، `h' فاصلهگذاری هگز را حذف میکند، `A' حداکثر NUM خط هگز پس از تطابق را دربرمیگیرد، `B' حداکثر NUM خط هگز پیش از تطابق را دربرمیگیرد و `C' حداکثر NUM خط هگز پیش و پس از تطابق را دربرمیگیرد. آرگومانهای `A'، `B' و `C' در هنگام استفاده به همراه --hexdump همانند گزینههای -A، -B و -C عمل میکنند. همچنین گزینههای -U، -W و -X را ببینید.
- جستجوی فایلها و دایرکتوریهای پنهان (بهطور پیشفرض در حالت سازگاری با grep فعال است).
- --hyperlink[=[PREFIX][+]]
- پیوندها (ابرپیوندها) برای نامهای فایل در صورت فعال بودن رنگها فعال میشوند. مشابه --colors=hl. هنگامی که PREFIX مشخص شود، عبارت file:// را در ابرپیوند با PREFIX:// جایگزین میکند. علامت `+' شماره خط و در صورت تعیین گزینه -k، شماره ستون را نیز در پیوند قرار میدهد.
- -I, --ignore-binary
- نادیده گرفتن تطابقها در فایلهای دودویی (باینری). این گزینه معادل گزینه --binary-files=without-match است. فایلهایی که دارای بایتهای NUL (صفر) هستند، باینری به شمار میآیند. همچنین فایلهایی با کدگذاری نامعتبر UTF باینری محسوب میشوند مگر اینکه گزینه -U، --ascii یا --binary مشخص شده باشد.
- -i, --ignore-case
- انجام تطابق بدون حساسیت به بزرگی و کوچکی حروف. بهطور پیشفرض، ugrep به بزرگی و کوچکی حروف حساس است.
- --ignore-files[=FILE]
- نادیده گرفتن فایلها و دایرکتوریهایی که با الگوهای glob موجود در هر FILE مشاهدهشده در جستجوهای بازگشتی مطابقت دارند. مقدار پیشفرض FILE برابر با `.gitignore' است. فایلها و دایرکتوریهای منطبقِ واقع در دایرکتوریِ FILE و در زیردایرکتوریهای آن نادیده گرفته میشوند. هنگامی که FILE یک نام مسیر کامل باشد، FILE پیش از جستجوی بازگشتی خوانده شده و الگوهای glob به صورت سراسری برای نادیده گرفتن فایلها و دایرکتوریها اعمال میشوند. هنگامی که FILE برابر با `-' باشد، ورودی استاندارد خوانده میشود. عملکرد الگوهای glob مشابه با --exclude-from=FILE است، با این تفاوت که --ignore-files علاوه بر فایلها، دایرکتوریها را نیز در صورت تطابق الگوها مستثنی میکند. این گزینه میتواند تکرار شود.
- --no-ignore-files
- عدم نادیدهگیری فایلها، یعنی در صورت تعیین، اثر --ignore-files را لغو میکند.
- --include=GLOB
- تنها فایلهایی را جستجو میکند که نام آنها با GLOB مطابقت دارد؛ مشابه -g GLOB. الگوی GLOB میتواند از **، *، ? و [...] به عنوان نویسههای عام استفاده کند و از \ برای نقل لفظی نویسه عام یا بکاسلش بهره ببرد. هنگامی که GLOB حاوی یک `/' باشد، نام مسیرهای کامل مطابقت داده میشوند و چنانچه گزینههای -d، -r یا -R از قبل مشخص نشده باشند، گزینه -r برای پیمایش بازگشتی در دایرکتوریها فعال میشود. در غیر این صورت، نام پایهها مطابقت داده میشوند. هنگامی که GLOB با یک `/' پایان یابد، دایرکتوریها به گونهای گنجانده میشوند که گویی --include-dir مشخص شده است. در غیر این صورت فایلها گنجانده میشوند. توجه داشته باشید که الگوهای --exclude بر الگوهای --include اولویت دارند. الگوی GLOB باید برای جلوگیری از بسط توسط پوسته درون گیومه قرار گیرد. این گزینه میتواند تکرار شود.
- --include-dir=GLOB
- تنها دایرکتوریهایی که نام آنها با GLOB مطابقت دارد در جستجوهای بازگشتی گنجانده میشوند؛ مشابه -g GLOB/. الگوی GLOB میتواند از **، *، ? و [...] به عنوان نویسههای عام استفاده کند و از \ برای نقل لفظی نویسه عام یا بکاسلش بهره ببرد. هنگامی که GLOB حاوی یک `/' باشد، نام مسیرهای کامل مطابقت داده میشوند و چنانچه گزینههای -d، -r یا -R از قبل مشخص نشده باشند، گزینه -r برای پیمایش بازگشتی در دایرکتوریها فعال میشود. در غیر این صورت، نام پایهها مطابقت داده میشوند. توجه داشته باشید که الگوهای --exclude-dir بر الگوهای --include-dir اولویت دارند. الگوی GLOB باید برای جلوگیری از بسط توسط پوسته درون گیومه قرار گیرد. این گزینه میتواند تکرار شود..TP --include-from=FILE الگوهای glob را از FILE میخواند و تنها در فایلها و دایرکتوریهایی جستوجو میکند که نام آنها با یک یا چند glob مطابقت داشته باشد. یک glob میتواند از **، *، ؟، و [...] به عنوان نویسههای عام (wildcard) و از \ برای گریز دادن نویسههای عام یا نویسهٔ بکاسلش به صورت تحتاللفظی استفاده کند. هنگامی که یک glob حاوی یک `/' باشد، مسیرهای کامل مطابقت داده میشوند؛ در غیر این صورت نامهای پایه (basename) مطابقت داده میشوند. هنگامی که یک glob با یک `/' پایان مییابد، دایرکتوریها به گونهای لحاظ میشوند که گویی --include-dir مشخص شده است؛ در غیر این صورت فایلها لحاظ میشوند. یک glob که با یک `!' آغاز میشود، با مستثنی کردن فایلهای منطبق، موارد لحاظشدهٔ قبلی را لغو میکند. خطوطی که با `#' آغاز میشوند و خطوط خالی در FILE نادیده گرفته میشوند. هنگامی که FILE برابر با `-' باشد، ورودی استاندارد خوانده میشود. این گزینه میتواند تکرار شود.
- --include-fs=MOUNTS
- تنها سیستمهای فایلی که توسط MOUNTS مشخص شدهاند در جستوجوهای بازگشتی لحاظ میشوند. MOUNTS فهرستی جداشده با کاما از نقاط اتصال یا مسیرهای دایرکتوریها است. هنگامی که MOUNTS مشخص نشده باشد، جستوجوهای بازگشتی را به سیستم فایل دایرکتوری کاری محدود میکند، معادل با --include-fs=. (نقطه). توجه داشته باشید که --exclude-fs=MOUNTS نسبت به --include-fs=MOUNTS اولویت دارد. این گزینه میتواند تکرار شود.
- --index
- جستوجوی بازگشتی سریع و مبتنی بر نمایه (index) را انجام میدهد. این گزینه فرض میکند (اما الزامی نمیداند) که فایلها با ugrep-indexer نمایه شدهاند. این گزینه همچنین گزینهٔ -r یا --recursive را فعال میکند. فایلها، بایگانیها و فایلهای فشردهٔ نمایهشدهای را که تطابق ندارند نادیده میگیرد. در سیستمهای فایل سرد (فایلهای کشنشده) و بزرگ، یا هر سیستم فایلی که سرعت جستوجوی پایینی دارد، ممکن است شتاب چشمگیری حاصل شود. توجه داشته باشید در صورتی که الگوهای جستوجوی پیچیدهای شامل ردههای نویسهای بزرگ Unicode همراه با تکرارهای `*' یا `+' مشخص شوند، زمان آغاز به کار جستوجو ممکن است افزایش یابد، که باید از آن اجتناب شود. گزینهٔ -U یا --ascii یا --binary کارایی را بهبود میبخشد. گزینهٔ --stats گزارشی از جستوجوی نمایه را نمایش میدهد.
- -J NUM, --jobs=NUM
- تعداد ریسههای ایجادشده برای جستوجوی فایلها را تعیین میکند. به صورت پیشفرض، تعداد بهینهای از ریسهها برای جستوجوی همزمان فایلها ایجاد میشود. مقدار -J1 چندریسگی را غیرفعال میکند: فایلها به همان ترتیبی که مشخص شدهاند جستوجو میشوند.
- -j, --smart-case
- تطابق بدون تمایز حروف بزرگ و کوچک را انجام میدهد، مگر آنکه الگو با یک حرف بزرگ تحتاللفظی مشخص شده باشد.
- --json
- تطابقهای فایل را در قالب JSON خروجی میدهد. هنگامی که -H، -n، -k یا -b مشخص شده باشد، مقادیر بیشتری در خروجی درج میشوند. همچنین گزینههای --format و -u را ببینید.
- -K [MIN,][MAX], --range=[MIN,][MAX], --min-line=MIN, --max-line=MAX
- جستوجو را از خط MIN آغاز میکند و خواندن ورودی را پس از خط MAX متوقف میسازد.
- -k, --column-number
- شمارهٔ ستونِ تطابق الگو در جلوی خط منطبق مربوطه، با شروع از ستون ۱ نمایش داده میشود. در شمارش ستونها، نویسههای تب بسط داده میشوند؛ همچنین گزینهٔ --tabs را ببینید.
- -L, --files-without-match
- تنها نام فایلهایی که حاوی خطوط انتخابشده نیستند در خروجی استاندارد نوشته میشود. مسیرها به ازای هر فایلِ جستوجوشده یک بار فهرست میشوند. اگر ورودی استاندارد جستوجو شود، رشتهٔ ``(standard input)'' نوشته میشود.
- -l, --files-with-matches
- تنها نام فایلهایی که حاوی خطوط انتخابشده هستند در خروجی استاندارد نوشته میشود. مسیرها به ازای هر فایلِ جستوجوشده یک بار فهرست میشوند. اگر ورودی استاندارد جستوجو شود، رشتهٔ ``(standard input)'' نوشته میشود. با نخستین تطابق، خواندن ورودی متوقف میشود.
- --label=LABEL
- هنگامی که ورودی از ورودی استاندارد خوانده میشود، در جایی که معمولاً نام فایل در خروجی چاپ میشود، مقدار LABEL را نمایش میدهد. چنانچه LABEL دارای پسوند باشد، یک پسوند نام فایل را به ورودی استاندارد نسبت میدهد. مقدار پیشفرض `(standard input)' است.
- --line-buffered
- خروجی را وادار میکند تا به جای میانگیر بلوکی، به صورت میانگیر خطی باشد.
- --lines
- حالت تطابق خطی بولی برای گزینهٔ --bool؛ حالت پیشفرض است.
- -M MAGIC, --file-magic=MAGIC
- تنها در فایلهایی جستوجو میکند که با الگوی امضای جادویی MAGIC مطابقت داشته باشند. «بایتهای جادویی» امضا در ابتدای فایل با الگوی عبارت باقاعدهٔ MAGIC مقایسه میشوند. در صورت تطابق، فایل جستوجو خواهد شد. هنگامی که پیش از MAGIC یک `!' یا یک `^' قرار گیرد، فایلهای دارای امضاهای جادویی منطبق نادیده گرفته میشوند. این گزینه میتواند تکرار شود و با گزینههای -O و -t ترکیب گردد. هر فایل موجود در مسیر جستوجو خوانده میشود، که جستوجوهای بازگشتی را بهطور بالقوه پرهزینهتر میکند.
- -m [MIN,][MAX], --min-count=MIN, --max-count=MAX
- نیازمند MIN تطابق است، و پس از MAX تطابق، خواندن ورودی را متوقف میکند. تعداد MIN تا MAX تطابق را خروجی میدهد. برای نمونه، -m1 نخستین تطابق را خروجی میدهد و -cm1, (همراه با کاما) تطابقهای غیرصفر را میشمارد. هنگامی که -u یا --ungroup مشخص شده باشد، هر تطابق مجزا شمارش میشود. همچنین گزینهٔ -K را ببینید.
- --match
- همهٔ خطوط را تطابق میدهد. معادل مشخص کردن یک الگوی خالی برای جستوجو است.
- --max-files=NUM
- تعداد فایلهای منطبقشده را به NUM محدود میکند. توجه داشته باشید که برای تولید نتایج تکرارپذیر میتوان --sort یا -J1 را مشخص کرد. اگر --sort مشخص شود، تعداد ریسههای ایجادشده به NUM محدود میگردد.
- --max-size=MAX
- تنها در فایلهایی جستوجو میکند که اندازهٔ فیزیکی آنها از MAX بایت فراتر نرود. برای کیلو، مگا، گیگا، یا ترابایت، پسوندهای kb، mb، gb، tb را به MAX اضافه کنید.
- --min-size=MIN
- تنها در فایلهایی جستوجو میکند که اندازهٔ فیزیکی آنها برابر یا بیشتر از MIN بایت باشد. برای کیلو، مگا، گیگا، یا ترابایت، پسوندهای kb، mb، gb، tb را به MIN اضافه کنید.
- --mmap[=MAX]
- از نگاشت حافظه (memory map) برای جستوجوی فایلها استفاده میکند. به صورت پیشفرض، نگاشتهای حافظه تحت شرایط معینی برای بهبود کارایی به کار میروند. هنگامی که MAX مشخص شده باشد، حداکثر تا مقدار MAX حافظهٔ mmap به ازای هر ریسه استفاده میشود.
- -N PATTERN, --neg-regexp=PATTERN
- یک PATTERN منفی را برای رد کردن تطابقهای معین -e PATTERN با یک الگوی متقابل مشخص میکند. توجه داشته باشید که الگوهای طولانیتر نسبت به الگوهای کوتاهتر اولویت دارند؛ یعنی یک الگوی منفی باید هماندازه یا طولانیتر باشد تا الگوهای منطبق را رد کند. گزینهٔ -N را نمیتوان همراه با -P مشخص کرد. این گزینه میتواند تکرار شود.
- -n, --line-number
- در ابتدای هر خط خروجی، شمارهٔ خط نسبی آن در فایل، با شروع از خط ۱ قرار میگیرد. شمارندهٔ شمارهٔ خط برای هر فایل پردازششده بازنشانی میشود.
- --not [-e] PATTERN
- مشخص میکند که PATTERN نباید تطابق داشته باشد. توجه داشته باشید که -e A --not -e B خطوط دارای `A' یا خطوط فاقد `B' را مطابقت میدهد. برای تطابق خطوط دارای `A' که فاقد `B' هستند، عبارت -e A --andnot -e B را مشخص کنید. گزینهٔ --stats الگوهای جستوجوی اعمالشده را نمایش میدهد. همچنین گزینههای --and، --andnot، --bool، --files و --lines را ببینید.
- --null, -0
- یک بایت صفر پس از نام فایل در خروجی درج میکند. این گزینه میتواند با دستورهایی مانند `find -print0' و `xargs -0' برای پردازش نامهای دلخواه فایل، حتی نامهای حاوی خطوط جدید، به کار رود. همچنین گزینههای -H یا --with-filename و --null-data را ببینید.
- --null-data, -00
- ورودی و خروجی به عنوان دنبالهای از خطوط در نظر گرفته میشوند که هر خط به جای نویسهٔ خط جدید، با یک بایت صفر پایان مییابد؛ این کار در عمل NUL را با LF در ورودی و خروجی جابهجا میکند. هنگام ترکیب با گزینهٔ --encoding=ENCODING، هر خط را با خاتمهٔ یک بایت صفر خروجی میدهد، بدون آنکه بر ورودی مشخصشده طبق ENCODING تأثیر بگذارد. به جای گزینهٔ --null-data، گزینهٔ --encoding=null-data ورودی را به عنوان دنبالهای از خطوطِ خاتمهیافته با بایت صفر تلقی میکند بدون آنکه بر خروجی تأثیر بگذارد. گزینهٔ --null-data با ورودی UTF-16/32 سازگار نیست. از آنجا که ugrep هنگام مشخص شدن الگوهای حاوی خط جدید `\n' یا `\R'، چندین خط را مطابقت میدهد، این گزینه برای تطابق چندخطی الزامی نیست. همچنین گزینههای --encoding و --null را ببینید.
- -O EXTENSIONS, --file-extension=EXTENSIONS
- تنها در فایلهایی جستوجو میکند که پسوند نام آنها با فهرست مشخصشده و جداشده با کامای EXTENSIONS مطابقت داشته باشد؛ معادل با -g '*.ext' به ازای هر `ext' در EXTENSIONS. هنگامی که پیش از یک `ext' یک `!' یا یک `^' قرار گیرد، فایلهایی که پسوند نام آنها با `ext' منطبق است نادیده گرفته میشوند، معادل با -g '^*.ext'. این گزینه میتواند تکرار شود و با گزینههای -g، -M و -t ترکیب گردد.
- -o, --only-matching
- تنها بخش منطبقِ تطابق الگو خروجی داده میشود. هنگامی که -A، -B یا -C مشخص شده باشد، تطابق و زمینهٔ آن را در یک خط در محدودهٔ تعداد ستونهای مشخصشده جای میدهد.
- --only-line-number
- تنها شمارهٔ خطِ یک خط منطبق در خروجی داده میشود. شمارندهٔ شمارهٔ خط برای هر فایلِ پردازششده بازنشانی میشود.
- -P, --perl-regexp
- مقدار PATTERN را به عنوان یک عبارت باقاعدهٔ Perl با استفاده از PCRE2 تفسیر میکند. توجه داشته باشید که تطابق الگوی Perl با تطابق الگوی پیشفرض POSIX در grep متفاوت است.
- -p, --no-dereference
- در صورت مشخص شدن -R یا -r، پیوندهای نمادین را دنبال نمیکند، حتی اگر پیوندهای نمادین در خط فرمان مشخص شده باشند..TP --pager[=COMMAND] هنگامی که خروجی به ترمینال ارسال میشود، از COMMAND برای صفحهبندی خروجی استفاده میکند. در صورت تعریف شدن متغیر محیطی PAGER، مقدار COMMAND بهطور پیشفرض برابر با آن و در غیر این صورت `less' خواهد بود. گزینههای --heading و --line-buffered را فعال میکند.
- --pretty[=WHEN]
- هنگامی که خروجی به ترمینال ارسال میشود، در صورتی که صراحتاً غیرفعال نشده باشند، گزینههای --color، --heading، -n، --sort، --tree و -T را فعال میکند. مقدار WHEN میتواند `never'، `always' یا `auto' باشد. پیشفرض `auto' است.
- -Q[=DELAY], --query[=DELAY]
- حالت پرسوجو (Query): اجرای یک TUI برای انجام جستجوهای تعاملی. این حالت نیازمند ترمینالی با پشتیبانی از ANSI است. یک آرگومان اختیاری DELAY میتواند برای کاهش یا افزایش زمان پاسخ جهت اجرای جستجوها پس از آخرین فشردن کلید، در گامهای ۱۰۰ میلیثانیهای مشخص شود که پیشفرض آن ۳ (۳۰۰ میلیثانیه تاخیر) است. هیچ فاصلهای نباید بین -Q و آرگومان DELAY آن قرار گیرد. الگوهای اولیه را میتوان با -e PATTERN مشخص کرد، یعنی یک آرگومان PATTERN نیازمند گزینهٔ -e است. برای مشاهدهٔ صفحهٔ راهنما کلید F1 یا CTRL-Z را فشار دهید. برای فراخوانی دستوری جهت مشاهده یا ویرایش فایل نمایشیافته در بالای صفحه، کلید F2 یا CTRL-Y را فشار دهید. این دستور را میتوان با گزینهٔ --view مشخص کرد و در صورت تعریف بودن متغیر محیطی PAGER، مقدار پیشفرض آن برابر با آن و در غیر این صورت VISUAL یا EDITOR خواهد بود. برای پیمایش دایرکتوریها و انتخاب یک فایل جهت جستجو، کلید TAB یا SHIFT-TAB را فشار دهید. برای انتخاب خطوط جهت ارسال به خروجی، کلید ENTER را فشار دهید. برای گزینهٔ -l جهت فهرست کردن فایلها کلید ALT-l، برای -n کلید ALT-n و غیره را فشار دهید. دستورهای غیرگزینهای شامل ALT-] برای افزایش زمینه و ALT-} برای افزایش میزان تقریب (fuzzyness) است. اگر کلیدهای ALT یا OPTION در دسترس نیستند، کلیدهای CTRL-O + KEY را برای تغییر وضعیت گزینهٔ `KEY' فشار دهید، یا F1 یا CTRL-Z را برای راهنما فشار داده و سپس KEY را بزنید. همچنین گزینههای --no-confirm، --delay، --split و --view را ببینید.
- -q, --quiet, --silent
- حالت بیصدا: فرونشاندن تمام خروجیها. جستجوی یک فایل تنها تا زمانی ادامه مییابد که یک تطابق پیدا شود.
- -R, --dereference-recursive
- خواندن بازگشتی تمام فایلهای زیر هر دایرکتوری، بر خلاف -r، با دنبال کردن پیوندهای نمادین به فایلها و دایرکتوریها.
- -r, --recursive
- خواندن بازگشتی تمام فایلهای زیر هر دایرکتوری، با دنبال کردن پیوندهای نمادین تنها در صورتی که در خط فرمان آمده باشند. توجه داشته باشید که وقتی هیچ آرگومان FILE مشخص نشده باشد و ورودی از ترمینال خوانده شود، جستجوهای بازگشتی بهگونهای انجام میشوند که گویی -r مشخص شده است.
- --replace=FORMAT
- جایگزین کردن الگوهای منطبق در خروجی با FORMAT بههمراه فیلدهای `%'. اگر -P مشخص شده باشد، FORMAT میتواند شامل `%1' تا `%9'، `%[NUM]#' و `%[NAME]#' برای خروجی دادن گروههای گرفتهشده (group captures) باشد. یک `%%' مقدار `%' را خروجی میدهد و `%~' یک خط جدید خروجی میدهد. برای جزئیات بیشتر به گزینهٔ --format، `ugrep --help format' و بخش FORMAT در `man ugrep' مراجعه کنید.
- -S, --dereference-files
- هنگامی که -r مشخص شده باشد، پیوندهای نمادین به فایلها دنبال میشوند، اما به دایرکتوریها نه. پیشفرض این است که پیوندهای نمادین دنبال نشوند.
- -s, --no-messages
- حالت بیصدا: فایلهای ناموجود و غیرقابل خواندن نادیده گرفته میشوند و پیامهای خطا و هشدارهای آنها فرونشانده میشود.
- --save-config[=FILE] [OPTIONS]
- ذخیرهٔ FILE پیکربندی به گونهای که شامل OPTIONS باشد. بهروزرسانی FILE در زمانی که نخستین بار با --config=FILE بارگذاری شده باشد. فایل پیشفرض `.ugrep' است که بهطور خودکار توسط دستور ug بارگذاری میشود. زمانی که FILE برابر با `-' باشد، پیکربندی را در خروجی استاندارد مینویسد. تنها بخشی از OPTIONS ذخیره میشوند که ترکیب آنها با گزینههای دیگر موجب شکست جستجوها نشود. گزینههای بیشتر را میتوان با ویرایش فایل پیکربندی ذخیرهشده مشخص کرد. یک فایل پیکربندی را میتوان با افزودن یک یا چند config=FILE برای گنجاندن فایلهای پیکربندی اصلاح کرد، اما گنجاندن بازگشتی فایلهای پیکربندی مجاز نیست.
- --separator[=SEP], --context-separator=SEP
- استفاده از SEP بهعنوان جداکنندهٔ فیلدها بین نام فایل، شماره خط، شماره ستون، افست بایت و خط منطبق. جداکنندهٔ پیشفرض دونقطه (`:') و خط عمودی (`|') برای تطابق الگوهای چندخطی، و خط تیره (`-') برای خطوط زمینه (context) است. همچنین گزینهٔ --group-separator را ببینید.
- --split
- تقسیم کردن صفحهٔ TUI پرسوجوی -Q هنگام راهاندازی.
- --sort[=KEY]
- نمایش فایلهای منطبق به ترتیبی که توسط KEY در جستجوهای بازگشتی مشخص شده است. بهطور معمول دستور ug بر اساس نام مرتب میکند در حالی که دستور دستهای ugrep موارد منطبق را بدون ترتیب خاصی برای بهبود کارایی نمایش میدهد. مقدار کلید مرتبسازی KEY میتواند `name' برای مرتبسازی بر اساس نام مسیر (پیشفرض)، `best' برای مرتبسازی بر اساس بهترین تطابق با گزینهٔ -Z (مرتبسازی بر اساس بهترین تطابق نیازمند دو دور پیمایش روی فایلها است که هزینهٔ پردازشی بالایی دارد)، `size' برای مرتبسازی بر اساس اندازهٔ فایل، `used' برای مرتبسازی بر اساس زمان آخرین دسترسی، `changed' برای مرتبسازی بر اساس زمان آخرین تغییر، و `created' برای مرتبسازی بر اساس زمان ایجاد باشد. مرتبسازی با `rname'، `rbest'، `rsize'، `rused'، `rchanged' یا `rcreated' معکوس میشود. محتویات آرشیوها مرتب نمیشوند. زیردایرکتوریها مرتب شده و پس از فایلهای منطبق نمایش داده میشوند. آرگومانهای FILE به همان ترتیبی که مشخص شدهاند جستجو میشوند.
- --stats
- خروجی دادن آمار دربارهٔ تعداد فایلها و دایرکتوریهای جستجوشده و محدودیتهای شمول و عدم شمول اعمالشده.
- -T, --initial-tab
- افزودن یک فاصلهٔ برگه (Tab) برای جدا کردن نام فایل، شماره خط، شماره ستون و افست بایت از خط منطبق.
- -t TYPES, --file-type=TYPES
- جستجو تنها در فایلهای مرتبط با TYPES، که فهرستی جداشده با ویرگول از انواع فایل است. هر نوع فایل متناظر با مجموعهای از پسوندهای نام فایل است که به گزینهٔ -O و نامهای فایلی که به گزینهٔ -g ارسال میشوند. برای انواع فایل با حروف بزرگ، جستجو گسترش مییابد تا فایلهایی با بایتهای جادویی (magic bytes) امضای فایل منطبق را نیز شامل شود، گویی به گزینهٔ -M ارسال شده است. هنگامی که یک نوع فایل با `!' یا `^' آغاز شود، فایلهای آن نوع مشخصشده استثنا میشوند. در صورتی که انتخابی بدون ابهام باشد، مشخص کردن بخش ابتدایی نام نوع فایل کفایت میکند. این گزینه ممکن است تکرار شود. انواع فایلهای ممکن میتوانند شامل این موارد باشند (-tlist فهرستی را نمایش میدهد): `actionscript', `ada', `adoc', `asm', `asp', `aspx', `autoconf', `automake', `awk', `Awk', `basic', `batch', `bison', `c', `c++', `clojure', `cpp', `csharp', `css', `csv', `dart', `Dart', `delphi', `elisp', `elixir', `erlang', `fortran', `gif', `Gif', `go', `groovy', `gsp', `haskell', `html', `jade', `java', `jpeg', `Jpeg', `js', `json', `jsp', `julia', `kotlin', `less', `lex', `lisp', `lua', `m4', `make', `markdown', `matlab', `node', `Node', `objc', `objc++', `ocaml', `parrot', `pascal', `pdf', `Pdf', `perl', `Perl', `php', `Php', `png', `Png', `prolog', `python', `Python', `r', `rpm', `Rpm', `rst', `rtf', `Rtf', `ruby', `Ruby', `rust', `scala', `scheme', `seed7', `shell', `Shell', `smalltalk', `sql', `svg', `swift', `tcl', `tex', `text', `tiff', `Tiff', `tt', `typescript', `verilog', `vhdl', `vim', `xml', `Xml', `yacc', `yaml', `zig'.
- --tabs[=NUM]
- تنظیم اندازهٔ برگه (Tab) به NUM جهت بسط دادن زبانهها برای گزینهٔ -k. مقدار NUM میتواند ۱ (بدون بسط دادن)، ۲، ۴ یا ۸ باشد. اندازهٔ پیشفرض ۸ است.
- --tag[=TAG[,END]]
- غیرفعال کردن رنگها برای نشانهگذاری تطابقها با TAG. در صورت مشخص شدن، END پایان یک تطابق را نشانهگذاری میکند، در غیر این صورت از TAG استفاده میشود. مقدار پیشفرض `___' است.
- --tree, -^
- خروجی دادن دایرکتوریها بههمراه فایلهای منطبق در یک ساختار درختمانند برای گزینهٔ -c یا --count، -l یا --files-with-matches، و -L یا --files-without-match. هنگامی که خروجی به ترمینال ارسال میشود، این گزینه توسط --pretty فعال میگردد.
- -U, --ascii, --binary
- غیرفعال کردن تطبیق یونیکد برای تطبیق ASCII و دودویی (binary). آرگومان PATTERN بایتها را مطابقت میدهد. برای نمونه، -U '\xa3' بهجای نقطهٔ کد یونیکد U+00A3 که با توالی UTF-8 برابر با C2 A3 نمایش داده میشود، بایت A3 (هگزادسیمال) را مطابقت میدهد. ورودی صرفاً بهخاطر داشتن UTF نامعتبر بهعنوان «دودویی» نشانهگذاری نمیشود، بلکه تنها در صورت داشتن بایتهای NUL (صفر) چنین خواهد بود.
- -u, --ungroup
- عدم گروهبندی تطابقهای الگوی چندگانه در یک خط منطبق مشترک. برای هر تطابق الگوی اضافی، خط منطبق را دوباره در خروجی درج میکند.
- -V, --version
- نمایش نسخه بههمراه کتابخانههای پیوندیافته و خروج.
- -v, --invert-match
- خطوط انتخابشده آنهایی هستند که با هیچیک از الگوهای مشخصشده مطابقت ندارند.
- --view[=[+]COMMAND]
- استفاده از COMMAND برای مشاهده/ویرایش یک فایل در TUI پرسوجوی -Q با فشردن کلید CTRL-Y؛ عبارت +COMMAND پس از خاتمه یافتن COMMAND منتظر فشردن یک کلید میماند.
- -W, --with-hex
- خروجی دادن تطابقهای دودویی بهصورت هگزادسیمال، بدون دستکاری تطابقهای متنی. این گزینه معادل با گزینهٔ --binary-files=with-hex است. برای حذف خط منطبق از خروجی هگزادسیمال، از هر دو گزینهٔ -W و --hexdump استفاده کنید. همچنین گزینهٔ -U را ببینید.
- -w, --word-regexp
- عبارت PATTERN بهعنوان یک کلمه جستجو میشود، بهگونهای که متن منطبق باید قبل و بعد از خود نویسهای غیر از نویسههای کلمهای داشته باشد. نویسههای کلمهمانند شامل حروف یونیکد، ارقام و علائم نگارشی متصلکننده مانند زیرخط (underscore) هستند.
- --width[=NUM]
- کوتاه کردن خروجی به تعداد NUM نویسهٔ قابل مشاهده در هر خط. اگر NUM مشخص نشده باشد، عرض پنجرهٔ ترمینال به کار گرفته میشود. توجه داشته باشید که نویسههای با عرض دوگانه در خروجی ممکن است به خطوط عریضتری منجر شوند..TP -X, --hex تطابقها و خطوط منطبق را به صورت هگزادسیمال در خروجی نمایش میدهد. این گزینه معادل با گزینهٔ --binary-files=hex است. برای حذف خط منطبق از خروجی هگزادسیمال از گزینهٔ --hexdump استفاده کنید. همچنین گزینهٔ -U را ببینید.
- -x, --line-regexp
- تنها آن دسته از تطابقهایی را انتخاب میکند که دقیقاً با تمام خط مطابقت دارند، درست مانند اینکه الگوها میان ^ و $ قرار گرفته باشند.
- --xml
- تطابقهای فایل را در قالب XML خروجی میدهد. هنگامی که -H، -n، -k، یا -b مشخص شده باشد، مقادیر بیشتری خروجی داده میشوند. همچنین گزینههای --format و -u را ببینید.
- -Y, --empty
- الگوهای منطبق با تهی با تمام خطوط مطابقت مییابند. بهطور معمول، تطابقهای تهی در خروجی آورده نمیشوند، مگر اینکه الگو با `^' آغاز شود یا با `$' پایان یابد. با این گزینه، الگوهای منطبق با تهی، مانند x*y?، x*y*z* و x*(y?|z) با تمام خطوط تطابق مییابند، نه فقط با الگوی مورد انتظار. این گزینه بهطور پیشفرض در حالت سازگاری با grep فعال است؛ برای جلوگیری از تطابق با همهٔ خطوط، گزینهٔ --no-empty را مشخص کنید.
- -y, --any-line, --passthru
- تمام خطوط در خروجی نمایش داده میشوند (passthru). خطوط غیرمنطبق به عنوان زمینه با جداکنندهٔ `-' خروجی داده میشوند. همچنین گزینههای -A، -B و -C را ببینید.
- -Z[best][+-~][MAX], --fuzzy[=[best][+-~][MAX]]
- حالت فازی (Fuzzy): تطابقهای تقریبی الگو را در محدودهٔ خطاهای MAX گزارش میدهد. حالت پیشفرض -Z1 است: یک مورد حذف، درج، یا جایگزینی مجاز است. اگر `+`، `-' و/یا `~' مشخص شوند، آنگاه `+' درج، `-' حذف و `~' جایگزینی را مجاز میسازد. برای نمونه، -Z+~3 تا سه درج یا جایگزینی را مجاز میکند، اما هیچ حذفی مجاز نیست. اگر `best' مشخص شود، تنها بهترین خطوط منطبق با کمترین هزینه به ازای هر فایل خروجی داده میشوند. گزینهٔ -Zbest نیازمند دو بار پیمایش روی فایل است و نمیتواند همراه با ورودی استاندارد یا پرسوجوهای بولی (Boolean) استفاده شود. گزینهٔ --sort=best فایلهای منطبق را بر اساس بهترین تطابق مرتب میکند. اولین نویسه از یک تطابق تقریبی همیشه با نویسهای در ابتدای الگو مطابقت پیدا میکند. برای تطابق فازی اولین نویسه، آن را با یک `.' یا `.?` جایگزین کنید. گزینهٔ -U تطابق فازی را بهجای متن Unicode روی بایتها و ASCII اعمال میکند. هیچ فاصلهٔ خالیای نباید بین -Z و آرگومان آن قرار گیرد.
- -z, --decompress
- جستجو در فایلهای فشرده و بایگانیها. بایگانیها (.cpio، .pax، .tar) و بایگانیهای فشرده (مانند .zip، .7z، .taz، .tgz، .tpz، .tbz، .tbz2، .tb2، .tz2، .tlz، .txz، .tzst) جستجو میشوند و مسیرهای فایلهای منطبق درون بایگانیها درون آکولاد خروجی داده میشوند. هنگامی که همراه با گزینهٔ --zmax=NUM استفاده شود، محتویات فایلهای فشرده و بایگانیهای ذخیرهشده درون بایگانیها را تا NUM سطح جستجو میکند. هنگامی که -g، -O، -M، یا -t مشخص شود، به ترتیب بایگانیها را برای فایلهایی جستجو میکند که با الگوهای تطبیق مسیر (globs)، پسوندهای نام فایل، بایتهای جادویی امضای فایل، یا انواع فایل مشخصشده مطابقت دارند؛ اثر جانبی این گزینهها این است که تنها فایلهای فشرده و بایگانیهایی جستجو میشوند که پسوند نام فایل آنها با انواع فشردهسازی و بایگانی شناختهشده مطابقت داشته باشد. قالبهای فشردهسازی پشتیبانیشده: gzip (.gz)، compress (.Z)، zip، 7z، bzip2 (.bz، .bz2، .bzip2، .tbz، .tbz2، .tb2، .tz2)، xz (.xz، .txz) و lzma (نیازمند پسوند .lzma، .tlz)، zstd (.zst، .zstd، .tzst)، lz4 (نیازمند پسوند .lz4)، brotli (نیازمند پسوند .br)، bzip3 (نیازمند پسوند .bz3).
- --zmax=NUM
- هنگامی که همراه با گزینهٔ -z یا --decompress استفاده شود، محتویات فایلهای فشرده و بایگانیهای ذخیرهشده درون بایگانیها را حداکثر تا NUM مرحلهٔ بازگشایی جستجو میکند. مقدار پیشفرض --zmax=1 تنها امکان جستجوی فایلهای فشردهنشدهٔ ذخیرهشده درون بایگانیهای cpio، pax، tar، zip و 7z را فراهم میکند؛ فایلها و بایگانیهای فشرده به عنوان فایلهای دودویی شناسایی شده و عملاً نادیده گرفته میشوند. برای جستجوی فایلها و بایگانیهای فشردهٔ ذخیرهشده درون بایگانیهای cpio، pax، tar، zip و 7z، مقدار --zmax=2 را مشخص کنید. مقدار NUM میتواند بین ۱ تا ۹۹ باشد که تا سقف ۹۹ مرحلهٔ فشردهزدایی و استخراج از بایگانی را پوشش میدهد. افزایش مقادیر NUM بهتدریج کارایی را کاهش میدهد.
- برای دریافت راهنما در مورد WHAT عبارت `ugrep --help WHAT' را مشخص کنید.
وضعیت خروج (EXIT STATUS)
ابزار ugrep با یکی از مقادیر زیر خارج میشود:
- 0
- یک یا چند خط انتخاب شدند.
- 1
- هیچ خطی انتخاب نشد.
- >1
- خطایی رخ داد.
اگر -q یا --quiet یا --silent استفاده شود و خطی انتخاب شده باشد، وضعیت خروج حتی در صورت بروز خطا 0 خواهد بود..SH "پیکربندی (CONFIGURATION)" دستور ug برای جستجوی تعاملی طراحی شده است و معادل دستور ugrep --config --pretty --sort برای بارگذاری فایل پیکربندی `.ugrep` واقع در دایرکتوری کاری یا، در صورت پیدا نشدن، در دایرکتوری خانگی است.
یک فایل پیکربندی شامل جفتهای `NAME=VALUE' در هر خط است، که در آن `NAME` نام یک گزینهٔ طولانی (بدون `--`) و `=VALUE' آرگومان آن است که اختیاری بوده و بسته به نوع گزینه میتواند حذف شود. خطهای خالی و خطهایی که با `#' شروع میشوند نادیده گرفته میشوند.
گزینهٔ --config=FILE و شکل کوتاهشدهٔ آن ---FILE فایل پیکربندی مشخصشده در دایرکتوری کاری یا، در صورت پیدا نشدن، در دایرکتوری خانگی را بارگذاری میکنند. در صورتی که FILE پیدا نشود یا قابل خواندن نباشد، یک خطا ایجاد میشود.
گزینههای خط فرمان به ترتیب زیر پردازش میشوند: ابتدا فایل پیکربندی بارگذاری میشود، و سپس سایر گزینهها و آرگومانهای خط فرمان اعمال میگردند.
گزینهٔ --save-config یک فایل پیکربندی `.ugrep' را با زیرمجموعهای از گزینههای مشخصشده در خط فرمان در دایرکتوری کاری ذخیره میکند. تنها آن بخش از گزینههای مشخصشده ذخیره میشوند که ترکیب آنها با گزینههای دیگر باعث شکست در جستجو نشود. گزینهٔ --save-config=FILE پیکربندی را در FILE ذخیره میکند. زمانی که FILE برابر `-' باشد، پیکربندی در خروجی استاندارد نوشته میشود.
تطبیق الگو (GLOBBING)
تطبیق الگو (Globbing) توسط گزینههای -g (--glob و --iglob)، --include، --include-dir، --include-from، --exclude، --exclude-dir، --exclude-from و --ignore-files برای تطبیق نام مسیرها یا نامهای پایه (basenames) در جستجوهای بازگشتی استفاده میشود. آرگومانهای تطبیق الگو برای این گزینهها باید داخل علامت نقلقول قرار گیرند تا از بسط الگو توسط پوسته جلوگیری شود.
تطبیق الگو با --ignore-files از نحو و قوانین gitignore پشتیبانی میکند. این مورد برای تمامی گزینههای دیگر مرتبط با تطبیق الگو نیز صادق است، با این استثنا که یک الگو با نام فایلها تطبیق مییابد، نه نام دایرکتوریها. اگر یک الگو به جداکنندهٔ مسیر `/' ختم شود، آنگاه با نام دایرکتوریها تطبیق مییابد نه نام فایلها، درست مانند حالتی که --include-dir یا --exclude-dir مشخص شده باشد.
هنگامی که یک الگو شامل جداکنندهٔ مسیر `/' باشد، مسیر کامل تطبیق داده میشود. در غیر این صورت نام پایهٔ (basename) یک فایل یا دایرکتوری تطبیق مییابد. برای مثال، *.h با foo.h و bar/foo.h تطبیق دارد. bar/*.h با bar/foo.h تطبیق مییابد اما با foo.h و bar/bar/foo.h تطبیق ندارد. برای اجبار /*.h به تطبیق با foo.h در دایرکتوری کاری ولی نه bar/foo.h، از یک `./' ابتدایی یا صرفاً `/' استفاده کنید.
هنگامی که یک الگو با `!' یا `^' آغاز شود مانند -g^GLOB، تطبیق نفی (معکوس) میشود. به همین ترتیب، میتوان از `!' (اما نه `^') در الگوهای فایلهای مشخصشده با --include-from، --exclude-from و --ignore-files برای نفی تطبیق الگو استفاده کرد. خطوط خالی یا خطوطی که با `#' آغاز میشوند نادیده گرفته میشوند.
نحو و قراردادهای تطبیق الگو (Glob Syntax and Conventions)
- *
- با هر چیزی به جز / تطبیق مییابد.
- ?
- با هر تکنویسهای به جز / تطبیق مییابد.
- [abc-e]
- با یک نویسه از بین a، b، c، d، e تطبیق مییابد.
- [^abc-e]
- با یک نویسه به جز a، b، c، d، e، / تطبیق مییابد.
- [!abc-e]
- با یک نویسه به جز a، b، c، d، e، / تطبیق مییابد.
- /
- هنگامی که در ابتدای الگو استفاده شود، با دایرکتوری کاری تطبیق مییابد. هنگامی که در انتهای الگو استفاده شود، فقط با دایرکتوریها تطبیق مییابد.
- **/
- با صفر یا چند دایرکتوری تطبیق مییابد.
- /**
- هنگامی که در انتهای الگو استفاده شود، با همه چیز پس از / تطبیق مییابد.
- \?
- با یک ? یا هر نویسهٔ دیگر مشخصشده پس از بکاسلش تطبیق مییابد.
مثالهای تطبیق الگو (Glob Matching Examples)
- *
- با a، b، x/a، x/y/b تطبیق مییابد
- a
- با a، x/a، x/y/a تطبیق مییابد، اما نه با b، x/b، a/a/b
- /*
- با a، b تطبیق مییابد، اما نه با x/a، x/b، x/y/a
- /a
- با a تطبیق مییابد، اما نه با x/a، x/y/a
- a?b
- با axb، ayb تطبیق مییابد، اما نه با a، b، ab، a/b
- a[xy]b
- با axb، ayb تطبیق مییابد، اما نه با a، b، azb
- a[a-z]b
- با aab، abb، acb، azb تطبیق مییابد، اما نه با a، b، a3b، aAb، aZb
- a[^xy]b
- با aab، abb، acb، azb تطبیق مییابد، اما نه با a، b، axb، ayb
- a[^a-z]b
- با a3b، aAb، aZb تطبیق مییابد، اما نه با a، b، aab، abb، acb، azb
- a/*/b
- با a/x/b، a/y/b تطبیق مییابد، اما نه با a/b، a/x/y/b
- **/a
- با a، x/a، x/y/a تطبیق مییابد، اما نه با b، x/b.
- a/**/b
- با a/b، a/x/b، a/x/y/b تطبیق مییابد، اما نه با x/a/b، a/b/x
- a/**
- با a/x، a/y، a/x/y تطبیق مییابد، اما نه با a، b/x
- a\?b
- با a?b تطبیق مییابد، اما نه با a، b، ab، axb، a/b
توجه داشته باشید که هنگام مشخص شدن با گزینههای -g، --exclude، --exclude-dir، --include و include-dir، الگوهای مستثنیسازی (exclude) نسبت به الگوهای مشمولسازی (include) اولویت دارند.
گزینهٔ --ignore-files فایلی با الگوهای سبک gitignore را مشخص میکند، که در آن فایل پیشفرض `.gitignore` است. هنگامی که در جستجوهای بازگشتی با فایلهای نادیدهگیری (ignore) مواجه میشویم، جستجو با مستثنی کردن نام فایلها و نام دایرکتوریهای مطابق با الگوها محدودتر میشود؛ این قاعدهٔ تطبیق الگوی gitignore با گزینهٔ --exclude-from متفاوت است، زیرا آن گزینه مستلزم این است که الگوها برای تطبیق با نام دایرکتوریها به `/' ختم شوند..SH "محیط (ENVIRONMENT)"
- GREP_PATH
- میتواند برای مشخصکردن مسیر فایلهای الگو استفاده شود. این مسیر توسط گزینهٔ -f برای باز کردن فایل الگو، هنگامی که فایل الگو وجود ندارد، به کار میرود. در صورتی که GREP_PATH تعریف نشده باشد، مقدار پیشفرض /usr/local/share/ugrep/patterns است.
- GREP_COLOR
- میتواند برای تعیین پارامترهای ANSI SGR جهت برجستهسازی تطابقها هنگام استفاده از گزینهٔ --color به کار رود؛ به عنوان مثال 1;35;40 تطابقهای الگو را با متن ارغوانی پررنگ روی پسزمینهٔ سیاه نمایش میدهد. این متغیر به نفع GREP_COLORS منسوخ شده است، اما همچنان پشتیبانی میشود.
- GREP_COLORS
- میتواند برای تعیین پارامترهای ANSI SGR جهت برجستهسازی تطابقها و سایر ویژگیها هنگام استفاده از گزینهٔ --color به کار رود. مقدار آن فهرستی از پارامترهای ANSI SGR جداشده با دونقطه (:) است که مقدار پیشفرض آن cx=33:mt=1;31:fn=1;35:ln=1;32:cn=1;32:bn=1;32:se=36 به همراه پارامترهای اضافی برای رنگهای TUI بهصورت :qp=1;32:qe=1;37;41:qm=1;32:ql=36:qb=1;35 است. قابلیتهای mt=، ms= و mc= در GREP_COLORS نسبت به GREP_COLOR اولویت دارند. گزینهٔ --colors نیز نسبت به GREP_COLORS اولویت دارد.
GREP_COLORS
رنگها بهصورت رشتهای از پارامترهای ANSI SGR جداشده با دونقطه بهشکل `what=substring' مشخص میشوند، که در آن `substring' فهرستی از کدهای ANSI SGR جداشده با نقطه-ویرگول یا حروف `k' (سیاه)، `r' (قرمز)، `g' (سبز)، `y' (زرد)، `b' (آبی)، `m' (ارغوانی)، `c' (فیروزهای) و `w' (سفید) است. حروف بزرگ رنگهای پسزمینه را مشخص میکنند. نویسهٔ `+' رنگ را روشن (bright) میکند. یک رنگ پیشزمینه و پسزمینه میتوانند با یک یا چند ویژگی قلم ترکیب شوند: `n' (عادی)، `f' (کمرنگ)، `h' (برجسته)، `i' (معکوس) و `u' (زیرخطدار). زیررشتهها میتوانند برای موارد زیر تعیین شوند:
- sl=
- خطهای انتخابشده.
- cx=
- خطهای سیاق (متن پیرامون).
- rv
- هنگام مشخص شدن -v، قابلیتهای sl= و cx= را جابهجا میکند.
- mt=
- متن منطبق در هر خط دارای تطابق.
- ms=
- متن منطبق در یک خط انتخابشده؛ بهطور پیشفرض همان زیررشتهٔ mt= است.
- mc=
- متن منطبق در یک خط سیاق؛ بهطور پیشفرض همان زیررشتهٔ mt= است.
- fn=
- نامهای فایل.
- ln=
- شمارههای خط.
- cn=
- شمارههای ستون.
- bn=
- آفستهای بایتی.
- se=
- جداسازها.
- rv
- یک پارامتر بولی، با گزینهٔ -v قابلیتهای sl= و cx= را جابهجا میکند.
- hl
- یک پارامتر بولی، ابرپیوندهای نام فایل (\33]8;;link) را فعال میکند.
- ne
- یک پارامتر بولی، قابلیت «پاک کردن درون خط» \33[K را غیرفعال میکند.
- qp=
- اعلان (prompt) در TUI.
- qe=
- خطاهای TUI.
- qr=
- عبارت منظم در TUI.
- qm=
- متانویسههای عبارت منظم در TUI.
- ql=
- فهرستها و نویسههای لفظی عبارت منظم در TUI.
- qb=
- آکولادهای عبارت منظم در TUI.
قالب (FORMAT)
گزینهٔ --format=FORMAT قالب خروجی را برای تطابقها مشخص میکند. گزینهٔ --replace=FORMAT تنها الگوهای منطبق را جایگزین میکند. در FORMAT میتوان از فیلدهایی استفاده کرد که به مقادیر زیر بسط مییابند:
- %[TEXT]F
- در صورت استفاده از گزینهٔ -H: TEXT، مسیر فایل و جداساز.
- %f
- مسیر فایل.
- %a
- نام پایهٔ فایل بدون مسیر دایرکتوری.
- %p
- مسیر دایرکتوری منتهی به فایل.
- %z
- مسیر فایل درون یک آرشیو (فشردهشده).
- %[TEXT]H
- در صورت استفاده از گزینهٔ -H: TEXT، مسیر نقلقولشده و جداساز؛ \" و \\ جایگزین " و \ میشوند.
- %h
- مسیر نقلقولشدهٔ فایل؛ \" و \\ جایگزین " و \ میشوند.
- %[TEXT]I
- در صورت استفاده از گزینهٔ -H: TEXT، مسیر بهصورت دادههای نویسهای XML و جداساز.
- %i
- مسیر فایل بهصورت دادههای نویسهای XML.
- %[TEXT]N
- در صورت استفاده از گزینهٔ -n: TEXT، شمارهٔ خط و جداساز.
- %n
- شمارهٔ خط تطابق.
- %[TEXT]K
- در صورت استفاده از گزینهٔ -k: TEXT، شمارهٔ ستون و جداساز.
- %k
- شمارهٔ ستون تطابق.
- %[TEXT]B
- در صورت استفاده از گزینهٔ -b: TEXT، آفست بایتی و جداساز.
- %b
- آفست بایتی تطابق.
- %[TEXT]T
- در صورت استفاده از گزینهٔ -T: TEXT و یک نویسهٔ تب (tab).
- %t
- یک نویسهٔ تب (tab).
- %[SEP]$
- تنظیم جداساز فیلدها به SEP برای باقی فیلدهای قالب.
- %[TEXT]<
- اگر نخستین تطابق باشد: TEXT.
- %[TEXT]>
- اگر نخستین تطابق نباشد: TEXT.
- %,
- اگر نخستین تطابق نباشد: یک ویرگول، مشابه %[,]>.
- %:
- اگر نخستین تطابق نباشد: یک دونقطه، مشابه %[:]>.
- %;
- اگر نخستین تطابق نباشد: یک نقطه-ویرگول، مشابه %[;]>.
- %|
- اگر نخستین تطابق نباشد: یک خط عمودی، مشابه %[|]>.
- %[TEXT]S
- اگر نخستین تطابق نباشد: TEXT و جداساز؛ همچنین %[SEP]$ را ببینید.
- %s
- جداساز؛ همچنین %[TEXT]S و %[SEP]$ را ببینید.
- %~
- یک نویسهٔ خط تازه (newline).
- %M
- تعداد خطهای منطبق.
- %m
- تعداد تطابقها.
- %O
- خط منطبق بهصورت یک رشتهٔ خام از بایتها خروجی داده میشود.
- %o
- تطابق بهصورت یک رشتهٔ خام از بایتها خروجی داده میشود.
- %Q
- خط منطبق بهصورت یک رشتهٔ نقلقولشده؛ \" و \\ جایگزین " و \ میشوند.
- %q
- تطابق بهصورت یک رشتهٔ نقلقولشده؛ \" و \\ جایگزین " و \ میشوند.
- %C
- خط منطبق با قالب یک رشتهٔ نقلقولشدهٔ C/C++.
- %c
- تطابق با قالب یک رشتهٔ نقلقولشدهٔ C/C++.
- %J
- خط منطبق با قالب یک رشتهٔ نقلقولشدهٔ JSON.
- %j
- تطابق با قالب یک رشتهٔ نقلقولشدهٔ JSON.
- %V
- خط منطبق با قالب یک رشتهٔ نقلقولشدهٔ CSV.
- %v
- تطابق با قالب یک رشتهٔ نقلقولشدهٔ CSV.
- %X
- خط منطبق با قالب دادههای نویسهای XML.
- %x
- تطابق با قالب دادههای نویسهای XML.
- %w
- عرض تطابق، با شمارش نویسههای پهن (wide characters).
- %d
- اندازهٔ تطابق، با شمارش بایتها.
- %e
- آفست بایتی پایانی تطابق.
- %Z
- هزینهٔ فاصلهٔ ویرایشی یک تطابق تقریبی با گزینهٔ -Z.
- %u
- تنها خطهای یکتا را انتخاب میکند، مگر اینکه گزینهٔ -u استفاده شده باشد.
- %1
- نخستین گروه تسخیر عبارت منظم در تطابق، و به همین ترتیب تا گروه %9، مشابه %[1]#؛ نیازمند گزینهٔ -P است.
- %[NUM]#
- گروه تسخیر عبارت منظم NUM؛ نیازمند گزینهٔ -P است.
- %[NUM]b
- آفست بایتی گروه تسخیر NUM؛ نیازمند گزینهٔ -P است. برای آفست بایتی پایانی از e و برای طول بر حسب بایت از d استفاده کنید.
- %[NUM1|NUM2|...]#
- نخستین گروه تسخیر NUM که منطبق شده است؛ نیازمند گزینهٔ -P است.
- %[NUM1|NUM2|...]b
- آفست بایتی نخستین گروه تسخیر NUM که منطبق شده است؛ نیازمند گزینهٔ -P است. برای آفست بایتی پایانی از e و برای طول بر حسب بایت از d استفاده کنید..IP %[NAME]# گروه تسخیرشدهٔ NAME؛ نیازمند گزینهٔ -P و الگوی تسخیر `(?<NAME>PATTERN)' است، همچنین %G را ببینید.
- %[NAME]b
- آفست بایتی گروه تسخیرشدهٔ NAME؛ نیازمند گزینهٔ -P و الگوی تسخیر `(?<NAME>PATTERN)' است. از e برای آفست بایتی پایان و از d برای طول بایتی استفاده کنید.
- %[NAME1|NAME2|...]#
- نخستین گروه تسخیرشدهٔ NAME که مطابقت یافته است؛ نیازمند گزینهٔ -P و الگوی تسخیر `(?<NAME>PATTERN)' است، همچنین %G را ببینید.
- %[NAME1|NAME2|...]b
- آفست بایتی نخستین گروه تسخیرشدهٔ NAME که مطابقت یافته است؛ نیازمند گزینهٔ -P و الگوی تسخیر `(?<NAME>PATTERN)' است. از e برای آفست بایتی پایان و از d برای طول بایتی استفاده کنید.
- %G
- فهرست نمایهها/نامهای گروههای تسخیرشده که مطابقت یافتهاند؛ نیازمند گزینهٔ -P است.
- %[TEXT1|TEXT2|...]G
- فهرست TEXT نمایهگذاریشده بر اساس نمایههای گروههای تسخیرشده که مطابقت یافتهاند؛ نیازمند گزینهٔ -P است.
- %g
- نمایه/نام گروه تسخیرشدهٔ مطابقتیافته یا 1؛ نیازمند گزینهٔ -P است.
- %[TEXT1|TEXT2|...]g
- نخستین TEXT نمایهگذاریشده بر اساس نمایهٔ نخستین گروه تسخیرشده که مطابقت یافته است؛ نیازمند گزینهٔ -P است.
- %%
- علامت درصد.
خروجی قالببندیشده بدون خط جدید پایانی نوشته میشود، مگر اینکه %~ یا `\n' صراحتاً در رشتهٔ قالب مشخص شده باشد.
بخش [TEXT] یک فیلد اختیاری است و میتواند حذف شود. در صورت وجود، آرگومان باید درون براکتهای [] قرار گیرد، برای نمونه %[,]F برای خروجی دادن یک ویرگول، مسیر فایل، و یک جداکننده.
موارد %[SEP]$ و %u سوییچ هستند و چیزی به خروجی ارسال نمیکنند.
جداکنندهٔ استفادهشده توسط فیلدهای %F، %H، %I، %N، %K، %B، %S و %G میتواند با قرار دادن %[SEP]$ پیش از فیلد تغییر یابد. هنگامی که [SEP] ارائه نشود، جداکننده به جداکنندهٔ پیشفرض یا جداکنندهٔ تعیینشده با --separator بازگردانده میشود.
خروجی قالببندیشده برای هر الگوی مطابقتیافته نوشته میشود، به این معنی که اگر الگوها بیش از یک بار در همان خط مطابقت یابند، یک خط ممکن است چند بار در خروجی نوشته شود. اگر فیلد %u در هر کجای رشتهٔ قالب مشخص شده باشد، خطوط مطابق تنها یک بار خروجی داده میشوند، مگر آنکه گزینهٔ -u، --ungroup مشخص شده باشد یا بیش از یک خط از ورودی با الگوی جستجو مطابقت داشته باشد.
گزینههای قالببندی تکمیلی:
- --format-begin=FORMAT
- قالب FORMAT در هنگام آغاز جستجو.
- --format-open=FORMAT
- قالب FORMAT هنگام باز کردن یک فایل در صورتی که تطابقی یافت شده باشد.
- --format-close=FORMAT
- قالب FORMAT هنگام بستن یک فایل در صورتی که تطابقی یافت شده باشد.
- --format-end=FORMAT
- قالب FORMAT در هنگام پایان جستجو.
گزینههای زمینه -A، -B، -C، -y و گزینههای نمایش --break، --heading، --color، -T و --null هیچ اثری بر خروجی قالببندیشده ندارند.
مثالها (EXAMPLES)
نمایش خطوط حاوی واژهٔ `patricia' در `myfile.txt':
- $ ugrep -w patricia myfile.txt
نمایش خطوط حاوی واژهٔ `patricia'، بدون در نظر گرفتن بزرگی و کوچکی حروف:
- $ ugrep -wi patricia myfile.txt
نمایش خطوطی که تقریباً با واژهٔ `patricia' مطابقت دارند، بدون در نظر گرفتن بزرگی و کوچکی حروف و با امکان حداکثر ۲ خطای املایی با استفاده از جستجوی فازی:
- $ ugrep -Z2 -wi patricia myfile.txt
شمارش تعداد خطوط حاوی `patricia'، بدون در نظر گرفتن بزرگی و کوچکی حروف:
- $ ugrep -cwi patricia myfile.txt
شمارش تعداد واژههای `patricia'، بدون در نظر گرفتن بزرگی و کوچکی حروف:
- $ ugrep -cowi patricia myfile.txt
فهرست کردن خطوط حاوی `amount' و یک عدد اعشاری، بدون در نظر گرفتن بزرگی و کوچکی حروف (فاصله به معنای AND است):
- $ ugrep -i -% 'amount \d+(\.\d+)?' myfile.txt
همان پرسوجوی جستجوی بولی، اما با گزینههای -e و --and:
- $ ugrep -wi -e amount --and '\d+(\.\d+)?' myfile.txt
فهرست کردن تمام واژههای یونیکد در یک فایل:
- $ ugrep -o '\w+' myfile.txt
فهرست کردن ایموجیهای صورت خندان (نقطههای کد یونیکد U+1F600 تا U+1F60F):
- $ ugrep -o '[\x{1F600}-\x{1F60F}]' myfile.txt
بررسی اینکه آیا یک فایل حاوی نویسههای غیر اسکی (یعنی یونیکد) است یا خیر:
- $ ugrep -q '[^[:ascii:]]' myfile.txt && echo "contains Unicode"
نمایش شماره خط و ستون عبارت `FIXME' در فایلهای C++ با استفاده از جستجوی بازگشتی، همراه با یک خط زمینه قبل و بعد از خط تطبیقیافته:
- $ ugrep -C1 -R -n -k -tc++ FIXME
نمایش شماره خط و ستون `FIXME' در فایلهای طولانی جاوااسکریپت با استفاده از جستجوی بازگشتی، و نمایش تنها تطابقهایی با حداکثر ۱۰ نویسه از زمینه قبل و بعد:
- $ ugrep -o -C20 -R -n -k -tjs FIXME
یافتن بلوکهای متنی میان خطوط منطبق با BEGIN و END با استفاده از کمیتسنج غیرحریصانه `*?' برای تطابق تنها با آنچه لازم است و الگوی `\n' برای تطابق با خطوط جدید:
- $ ugrep -n 'BEGIN.*\n(.*\n)*?.*END' myfile.txt
به همین ترتیب، فهرست کردن کامنتهای C/C++ در یک فایل همراه با شماره خطوط:
- $ ugrep -n -e '//.*' -e '/\*(.*\n)*?.*\*+\/' myfile.cpp
همان مورد، اما با استفاده از الگوی از پیش تعریفشدهٔ c++/comments:
- $ ugrep -n -f c++/comments myfile.cpp
فهرست کردن خطوط نیازمند اصلاح در یک فایل منبع C/C++ از طریق جستجوی واژهٔ `FIXME' در حین نادیده گرفتن هرگونه `FIXME' درون رشتههای نقلقولشده:
- $ ugrep -e FIXME -N '"(\\.|\\\r?\n|[^\\\n"])*"' myfile.cpp
همان مورد، اما با استفاده از الگوی از پیش تعریفشدهٔ cpp/zap_strings:
- $ ugrep -e FIXME -f cpp/zap_strings myfile.cpp
یافتن خطوط حاوی `FIXME' یا `TODO'، به همراه نمایش شماره خطوط:
- $ ugrep -n -e FIXME -e TODO myfile.cpp
یافتن خطوط حاوی `FIXME' که حاوی `urgent' نیز هستند:
- $ ugrep -n -e FIXME --and urgent myfile.cpp
همان مورد، اما با یک الگوی پرسوجوی بولی (فاصله به معنای AND است):
- $ ugrep -n -% 'FIXME urgent' myfile.cpp
یافتن خطوط حاوی `FIXME' که حاوی `later' نیستند:
- $ ugrep -n -e FIXME --andnot later myfile.cpp
همان مورد، اما با یک الگوی پرسوجوی بولی (فاصله به معنای AND و - به معنای NOT است):
- $ ugrep -n -% 'FIXME -later' myfile.cpp
خروجی دادن فهرستی از شماره خطوط مربوط به خطوط حاوی `FIXME' بدون `later':
- $ ugrep -e FIXME --andnot later --format='%,%n' myfile.cpp
فهرست کردن بازگشتی تمام فایلهایی که هم شامل `FIXME' و هم شامل `LICENSE' در هر کجای فایل هستند، نه لزوماً در یک خط:
- $ ugrep -l -%% 'FIXME LICENSE'
یافتن خطوط حاوی `FIXME' در فایلهای C/C++ ذخیرهشده درون یک آرشیو tar (tarball):
- $ ugrep -z -tc++ -n FIXME project.tgz
یافتن بازگشتی خطوط حاوی `FIXME' در فایلهای C/C++، بدون جستجو در دایرکتوریهای `bak' و `old':
- $ ugrep -n FIXME -tc++ -g^bak/,^old/
جستجوی بازگشتی برای واژهٔ `copyright' در آرشیوهای cpio، jar، pax، tar، zip، 7z، فایلهای فشرده و عادی، و درون فایلهای PDF با استفاده از فیلتر PDF:
- $ ugrep -z -w --filter='pdf:pdftotext % -' copyright
تطبیق الگوی باینری `A3hhhhA3' (هگزادسیمال) در یک فایل باینری بدون تطبیق الگوی یونیکد -U (که در غیر این صورت `\xaf' را به عنوان نویسهٔ یونیکد U+00A3 با دنبالهٔ بایتی UTF-8 معادل C2 A3 تطبیق میداد) و نمایش نتایج در قالب هگز با --hexdump همراه با C1 برای خروجی دادن یک خط هگز قبل و بعد از هر تطابق:.IP $ ugrep -U --hexdump=C1 '\xa3[\x00-\xff]{2}\xa3' a.out
نمایش تمام یک فایل بهصورت هگزادسیمال با استفاده از صفحهبندیکننده (pager) جهت مشاهده:
- $ ugrep -X --pager '' a.out
فهرست کردن تمام فایلهایی که توسط یک یا چند `.gitignore' نادیده گرفته نشدهاند:
- $ ugrep -l '' --ignore-files
فهرست کردن تمام فایلهای حاوی امضای RPM، واقع در دایرکتوری `rpm' و بهصورت بازگشتی تا دو سطح عمیقتر (مجموعاً ۳ سطح):
- $ ugrep -3 -l -tRpm '' rpm/
پایش لاگ سیستم برای گزارشهای باگ و تفکیک چند مورد منطبق در خطوط پیدا شده به خطهای جداگانه:
- $ tail -f /var/log/system.log | ugrep -u -i -w bug
جستجوی فازی (fuzzy) تعاملی همراه با عبارتهای جستجوی بولی (Boolean):
- $ ugrep -Q -l -% -Z2 --sort=best
نمایش تمام واژهها در یک فایل با کدگذاری MacRoman که دارای نویسههای خط جدید از نوع CR است:
- $ ugrep --encoding=MACROMAN '\w+' mac.txt
نمایش گزینههای مرتبط با جستجوی فازی (fuzzy):
- $ ugrep --help fuzzy
کپیرایت و تکثیر (COPYRIGHT)
Copyright (c) 2021-2025 Robert A. van Engelen <engelen@acm.org>
ugrep تحت مجوز BSD-3 منتشر شده است. تمام بخشهای نرمافزار شرایط حق نشر معقولی دارند که بازتوزیع آزادانه را مجاز میسازد. این مورد شامل امکان استفاده مجدد از تمام یا بخشهایی از درخت کد منبع ugrep نیز میشود.
همچنین ببینید (SEE ALSO)
ugrep-indexer(1), grep(1), zgrep(1).
گزارش باگها (BUGS)
گزارش باگها در: https://github.com/Genivia/ugrep/issues
| August 5, 2026 | ugrep 7.8.4 |