این دستور pcregrep است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
pcregrep - یک grep با عبارات منظم سازگار با Perl.
خلاصه
pcregrep [گزینه ها] [طولانی گزینه ها] [الگو] [مسیر 1 مسیر 2 ...] zpcregrep [گزینه ها] [طولانی
گزینه ها] [الگو] [پرونده 1 file2 ...]
شرح
pcregrep فایلها را برای الگوهای کاراکتر جستجو میکند، مانند سایر دستورات grep،
اما از کتابخانه بیان منظم PCRE برای پشتیبانی از الگوهای سازگار استفاده می کند
با عبارات منظم Perl 5. ببینید pcresyntax(3) برای یک خلاصه مرجع سریع از
نحو الگو، یا pcrepattern(3) برای توصیف کامل نحو و معنایی
عبارات منظمی که PCRE پشتیبانی می کند.
الگوها، چه در خط فرمان ارائه شده باشند و چه در یک فایل جداگانه، بدون ارائه شده اند
تعیین کننده ها مثلا:
pcregrep پنجشنبه /etc/motd
اگر میخواهید از جداکنندهها استفاده کنید (مثلاً با احاطه کردن یک الگو با اسلش، به عنوان
در اسکریپت های پرل رایج است)، آنها به عنوان بخشی از الگو تفسیر می شوند. نقل قول می تواند از
البته برای تحدید الگوها در خط فرمان استفاده می شود زیرا آنها توسط the تفسیر می شوند
پوسته، و در واقع اگر یک الگو حاوی فضای سفید یا پوسته باشد، نقل قول لازم است
متا شخصیت ها
اولین آرگومان که از تنظیمات گزینه پیروی می کند به عنوان الگوی واحد در نظر گرفته می شود
منطبق زمانی که هیچ کدام -e نه -f حاضر است. برعکس، زمانی که یکی یا هر دوی این گزینه ها
برای تعیین الگوها استفاده می شود، همه آرگومان ها به عنوان نام مسیر در نظر گرفته می شوند. حداقل یکی از -e,
-f، یا باید یک الگوی آرگومان ارائه شود.
اگر هیچ فایلی مشخص نشده باشد، pcregrep ورودی استاندارد را می خواند. ورودی استاندارد نیز می تواند
با نامی متشکل از یک خط فاصله ارجاع داده شود. مثلا:
pcregrep برخی از الگوهای /file1 - /file3
به طور پیش فرض، هر خطی که با یک الگو مطابقت دارد در خروجی استاندارد کپی می شود و اگر
بیش از یک فایل وجود دارد، نام فایل در ابتدای هر خط و به دنبال آن خروجی می شود
توسط یک روده بزرگ با این حال، گزینه هایی وجود دارد که می تواند نحوه تغییر را تغییر دهد pcregrep رفتار می کند. که در
خاص، -M این گزینه امکان جستجوی الگوهایی را فراهم می کند که دارای خط هستند
مرزها آنچه مرز خط را مشخص می کند توسط -N (--خط جدید) گزینه.
مقدار حافظه مورد استفاده برای بافر کردن فایل هایی که در حال اسکن هستند توسط a کنترل می شود
پارامتری که می تواند توسط - اندازه بافر گزینه. مقدار پیش فرض برای این
پارامتر زمانی مشخص می شود pcregrep ساخته شده است، با پیش فرض پیش فرض 20K. یک بلوک
از حافظه سه برابر این اندازه استفاده می شود (برای اجازه دادن به بافر "قبل" و "پس از"
خطوط). اگر خطی از بافر سرریز شود، خطا رخ می دهد.
الگوها نمی توانند بیشتر از 8K یا BUFSIZ بایت باشند، هر کدام که بیشتر باشد. BUFSIZ است
تعریف شده در . هنگامی که بیش از یک الگو وجود دارد (مشخص شده با استفاده از -e
و / یا -f)، هر الگو به ترتیبی که تعریف شده اند، به هر خط اعمال می شود.
جز اینکه همه -e الگوها قبل از -f الگوهای.
به طور پیش فرض، به محض اینکه یک الگو با یک خط منطبق شود، هیچ الگوی دیگری در نظر گرفته نمی شود.
اما اگر --رنگ (و یا --رنگ) برای رنگ آمیزی زیر رشته های منطبق یا if استفاده می شود --فقط-
مطابق, ---فایل آفست، یا --خطوط افست فقط برای خروجی بخشی از خط استفاده می شود
که مطابقت دارد (یا به معنای واقعی کلمه نشان داده شده است، یا به صورت افست)، اسکن بلافاصله از سر گرفته می شود
به دنبال مسابقه، به طوری که مسابقات بیشتر در همان خط را می توان یافت. اگر وجود دارد
الگوهای متعدد، همه آنها در بقیه خط امتحان می شوند، اما الگوهایی که
دنبال کنید که مطابقت دارد در قسمت قبلی خط امتحان نشده است.
این رفتار به این معنی است که ترتیبی که در آن الگوهای متعدد مشخص می شود می تواند تأثیر بگذارد
خروجی زمانی که یکی از گزینه های بالا استفاده می شود. این دیگر همان رفتار نیست
گنو grep، که اکنون میتواند مطابقتهای قبلی را برای الگوهای بعدی نمایش دهد (تا زمانی که
هیچ همپوشانی وجود ندارد).
الگوهایی که می توانند با یک رشته خالی مطابقت داشته باشند پذیرفته می شوند، اما مطابقت های رشته خالی هرگز پذیرفته نمی شوند
شناسایی شده. یک مثال الگوی "(super)?(man)?" است که همه اجزا در آن قرار دارند
اختیاری. این الگو همه موارد «فوق العاده» و «مرد» را پیدا می کند. خروجی متفاوت است
از تطبیق با "super|man" زمانی که فقط زیر رشته های منطبق نشان داده می شوند.
اگر LC_ALL or LC_CTYPE متغیر محیطی تنظیم شده است، pcregrep از مقدار برای تنظیم a استفاده می کند
هنگام تماس با کتابخانه PCRE. در --محلی می توان از گزینه برای نادیده گرفتن آن استفاده کرد.
zpcregrep یک اسکریپت wrapper است که به pcregrep اجازه می دهد تا روی فایل های فشرده gzip کار کند.
پشتیبانی برای فشرده شده فایل ها
امکان کامپایل وجود دارد pcregrep به طوری که استفاده می کند لیز or libbz2 برای خواندن فایل هایی که
نام ها به پایان می رسند .gz or bz2، به ترتیب. می توانید بفهمید که آیا باینری شما پشتیبانی دارد یا خیر
برای یک یا هر دو نوع فایل با اجرای آن با --کمک گزینه. اگر
پشتیبانی مناسب وجود ندارد، فایل ها به عنوان متن ساده در نظر گرفته می شوند. ورودی استاندارد است
همیشه اینطور رفتار می شود
دودویی فایل ها
بهطور پیشفرض، فایلی که حاوی یک بایت صفر باینری در 1024 بایت اول است
به عنوان یک فایل باینری شناسایی می شود و به طور ویژه پردازش می شود. (GNU grep همچنین باینری را شناسایی می کند
فایل ها را به این ترتیب.) مشاهده کنید ---فایل های باینری گزینه ای برای تغییر راه
فایل های باینری مدیریت می شوند.
OPTIONS
ترتیب ظاهر شدن برخی از گزینه ها می تواند بر خروجی تأثیر بگذارد. به عنوان مثال، هر دو
-h و -l گزینه ها بر چاپ نام فایل ها تأثیر می گذارند. هر کدام که بعداً در دستور بیاید
خطی خواهد بود که اثر می گذارد. به طور مشابه، به جز مواردی که در زیر ذکر شده است، در صورت وجود گزینه
دو بار داده می شود، تنظیمات بعدی استفاده می شود. مقادیر عددی برای گزینه ها ممکن است دنبال شود
K یا M، برای نشان دادن ضرب در 1024 یا 1024*1024 به ترتیب.
-- این لیست گزینه ها را خاتمه می دهد. مفید است اگر مورد بعدی در
خط فرمان با خط فاصله شروع می شود اما یک گزینه نیست. این اجازه می دهد تا برای
پردازش الگوها و نام فایل هایی که با خط تیره شروع می شوند.
-A عدد, --after-context=عدد
تولید عدد خطوط زمینه پس از هر خط منطبق. اگر نام فایل ها و/یا
اعداد خط در حال خروجی هستند، جداکننده خط فاصله به جای دو نقطه برای استفاده می شود
خطوط زمینه یک خط حاوی "--" بین هر گروه از خطوط خروجی است.
مگر اینکه در واقع در فایل ورودی به هم پیوسته باشند. ارزش عدد is
انتظار می رود نسبتا کوچک باشد. با این حال، pcregrep تا 8K را تضمین می کند
متن زیر برای خروجی زمینه موجود است.
-a, --متن
فایل های باینری را به عنوان متن در نظر بگیرید. این معادل است ---فایل های باینری=متن.
-B عدد, --before-context=عدد
تولید عدد خطوط زمینه قبل از هر خط منطبق. اگر نام فایل ها و/یا
اعداد خط در حال خروجی هستند، جداکننده خط فاصله به جای دو نقطه برای استفاده می شود
خطوط زمینه یک خط حاوی "--" بین هر گروه از خطوط خروجی است.
مگر اینکه در واقع در فایل ورودی به هم پیوسته باشند. ارزش عدد is
انتظار می رود نسبتا کوچک باشد. با این حال، pcregrep تا 8K را تضمین می کند
از متن قبلی موجود برای خروجی زمینه.
--binary-files=کلمه
نحوه پردازش فایل های باینری را مشخص کنید. اگر کلمه "دودویی" باشد (the
پیش فرض)، تطبیق الگو بر روی فایل های باینری انجام می شود، اما تنها خروجی آن است
"فایل باینری منطبق است" هنگامی که یک مسابقه موفق شد. اگر کلمه "متن" باشد، که
معادل است -a or --متن گزینه، فایل های باینری در همان پردازش می شوند
راه مانند هر فایل دیگری در این مورد، زمانی که یک مسابقه موفق می شود، خروجی ممکن است باشد
زباله های باینری که در صورت ارسال به ترمینال می توانند اثرات بدی داشته باشند. اگر کلمه
"بدون تطابق" است، که معادل است -I گزینه، فایل های باینری نیستند
اصلا پردازش شده فرض بر این است که آنها مورد توجه نیستند.
--buffer-size=عدد
پارامتری را تنظیم کنید که میزان حافظه مورد استفاده برای بافر کردن فایلها را کنترل میکند
در حال اسکن هستند.
-C عدد, --context=عدد
تولید عدد خطوط زمینه قبل و بعد از هر خط منطبق. این
معادل تنظیم هر دو است -A و -B به همان مقدار
-c, --شمردن
از فایل هایی که در حال اسکن هستند، خطوط جداگانه ای را خروجی نگیرید. بجای
خروجی تعداد خطوطی که در غیر این صورت نشان داده می شد. اگر هیچ خطی وجود ندارد
انتخاب شده، عدد صفر خروجی است. اگر چندین فایل در حال اسکن هستند، الف
تعداد برای هر یک از آنها خروجی است. با این حال، اگر --فایلها-با-مطابقات گزینه است
همچنین استفاده می شود، فقط آن دسته از فایل هایی که تعداد آنها بیشتر از صفر است لیست می شوند. چه زمانی
-c استفاده می شود ، -A, -Bو -C گزینه ها نادیده گرفته می شوند
--رنگ, --رنگ
اگر این گزینه بدون داده داده شود، معادل "--colour=auto" است.
اگر داده مورد نیاز است، باید در همان مورد پوسته داده شود که با علامت یک جدا شده است
علامت مساوی
--رنگ=ارزش, --رنگ=ارزش
این گزینه مشخص می کند که در چه شرایطی قسمت های یک خط مطابقت دارند
یک الگو باید در خروجی رنگی شود. به طور پیش فرض، خروجی نیست
رنگی مقدار (که اختیاری است، در بالا ببینید) ممکن است "هرگز"، "همیشه" یا
"خودکار". در مورد دوم، رنگ آمیزی تنها در صورتی اتفاق می افتد که خروجی استاندارد باشد
به یک ترمینال متصل است. وقتی رنگ آمیزی فعال است از منابع بیشتری استفاده می شود،
زیرا pcregrep باید همه مطابقت های ممکن را در یک خط جستجو کرد، نه فقط یک،
به منظور رنگ آمیزی همه آنها
رنگ مورد استفاده را می توان با تنظیم متغیر محیطی مشخص کرد
PCREGREP_COLOUR یا PCREGREP_COLOR. مقدار این متغیر باید یک رشته باشد
از دو عدد که با نقطه ویرگول از هم جدا شده اند. آنها به طور مستقیم در کپی می شوند
رشته کنترل برای تنظیم رنگ در ترمینال، بنابراین مسئولیت شما بر عهده شماست
اطمینان حاصل کنید که آنها منطقی هستند. اگر هیچ یک از متغیرهای محیط تنظیم نشده باشد،
پیش فرض "1;31" است که قرمز می دهد.
-D اقدام, --دستگاه ها=اقدام
اگر یک مسیر ورودی یک فایل معمولی یا یک دایرکتوری نباشد، "action" نحوه آن را مشخص می کند
قرار است پردازش شود. مقادیر معتبر «خواندن» (پیشفرض) یا «پرش» (بیصدا) هستند
از مسیر بگذر).
-d اقدام, --دایرکتوری ها=اقدام
اگر یک مسیر ورودی یک دایرکتوری باشد، "action" نحوه پردازش آن را مشخص می کند.
مقادیر معتبر "خوانده شده" هستند (پیشفرض در محیطهای غیر ویندوز، برای
سازگاری با GNU grep)، "recurse" (معادل با -r گزینه)، یا "پرش"
(بیصدا از مسیر، پیشفرض در محیطهای ویندوز رد شوید). در "خواندن"
در مورد، دایرکتوری ها به گونه ای خوانده می شوند که گویی فایل های معمولی هستند. در برخی از عملیات
سیستم ها اثر خواندن دایرکتوری مانند این یک پایان فوری فایل است.
در برخی دیگر ممکن است باعث خطا شود.
-e الگو, --regex=الگو, --regexp=الگو
الگویی را برای مطابقت مشخص کنید. این گزینه را می توان چندین بار به ترتیب استفاده کرد
برای مشخص کردن چندین الگو همچنین می توان از آن به عنوان راهی برای تعیین تک استفاده کرد
الگویی که با خط فاصله شروع می شود. چه زمانی -e استفاده می شود، هیچ الگوی آرگومانی گرفته نمی شود
از خط فرمان؛ همه آرگومان ها به عنوان نام فایل در نظر گرفته می شوند. وجود ندارد
محدود به تعداد الگوها آنها به ترتیب در هر خط اعمال می شوند
که آنها تعریف می شوند تا زمانی که یک مطابقت داشته باشد.
If -f با استفاده می شود -e، ابتدا الگوهای خط فرمان مطابقت داده می شوند و به دنبال آن
الگوهای فایل(ها)، مستقل از ترتیب این گزینه ها
مشخص شده اند. توجه داشته باشید که استفاده چندگانه از -e شبیه یک الگوی واحد نیست
با جایگزین به عنوان مثال، X|Y اولین کاراکتر را در یک خط پیدا می کند
X یا Y، در حالی که اگر دو الگو به طور جداگانه داده شوند، ابتدا X، pcregrep
X را در صورت وجود پیدا می کند، حتی اگر از Y در خط پیروی کند. فقط اگر Y را پیدا می کند
X در خط وجود ندارد. این فقط در صورت استفاده اهمیت دارد -o or --colo(u)r
برای نشان دادن قسمت(های) خطی که مطابقت دارند.
-- استثناء کردن=الگو
فایلهایی (اما نه دایرکتوریها) که نامهایشان با الگو مطابقت دارد بدون حذف میشوند
در حال پردازش. این برای همه فایلها، چه در خط فرمان فهرست شده باشد، اعمال میشود.
به دست آمده از ---فایل لیست، یا با اسکن یک دایرکتوری. الگوی PCR است
عبارت منظم، و با مولفه نهایی نام فایل مطابقت دارد،
نه کل مسیر در -F, -wو -x گزینه ها برای این الگو اعمال نمی شوند.
این گزینه ممکن است هر تعداد بار داده شود تا چندین مورد را مشخص کنید
الگوها اگر نام فایل با هر دو مطابقت داشته باشد --عبارتند از و -- استثناء کردن الگو، آن
مستثنی شده است. هیچ فرم کوتاهی برای این گزینه وجود ندارد.
--exclude-from=نام فایل
هر خط غیر خالی از فایل را به عنوان داده برای یک در نظر بگیرید -- استثناء کردن گزینه. چی
هنگامی که خواندن فایل پیش فرض سیستم عامل است، یک خط جدید تشکیل می دهد.
La --خط جدید گزینه تاثیری روی این گزینه ندارد. این گزینه ممکن است بیشتر داده شود
بیش از یک بار به منظور تعیین تعدادی فایل برای خواندن.
-- استثناء- کارگردان=الگو
دایرکتوری هایی که نام آنها با الگو مطابقت دارد بدون پردازش نادیده گرفته می شوند.
هر تنظیماتی که باشد - بازگشتی گزینه. این برای همه دایرکتوری ها صدق می کند،
آیا در خط فرمان ذکر شده است، به دست آمده از ---فایل لیست، یا با اسکن a
دایرکتوری والد این الگو یک عبارت منظم PCRE است و مطابقت دارد
در برابر مولفه نهایی نام دایرکتوری، نه کل مسیر. را -F,
-wو -x گزینه ها برای این الگو اعمال نمی شوند. این گزینه ممکن است هر کدام داده شود
چند بار به منظور تعیین بیش از یک الگو. اگر یک دایرکتوری
با هر دو مطابقت دارد -- شامل- کارگردان و -- استثناء- کارگردان، مستثنی شده است. کوتاه نیست
فرم برای این گزینه
-F, - رشته های ثابت
هر الگوی تطبیق داده را به عنوان لیستی از رشته های ثابت، تفکیک کنید
خطوط جدید، به جای یک عبارت منظم. چه چیزی یک خط جدید برای
این هدف توسط --خط جدید گزینه. -w (تطابق به عنوان یک کلمه) و
-x گزینه های (تطابق خط کامل) را می توان با استفاده کرد -F. آنها برای هر یک از آنها اعمال می شود
رشته های ثابت اگر هر یک از رشته های ثابت در آن یافت شود، یک خط انتخاب می شود
(موضوع -w or -x، در صورت وجود). این گزینه فقط برای الگوهایی اعمال می شود که
با محتویات فایل ها مطابقت دارند. در مورد الگوها صدق نمی کند
مشخص شده توسط هر یک از --عبارتند از or -- استثناء کردن گزینه.
-f نام فایل, --file=نام فایل
الگوها را از فایل، یکی در هر خط بخوانید و آنها را با هر خط از مطابقت دهید
ورودی آنچه در هنگام خواندن فایل یک خط جدید را تشکیل می دهد، عملیات است
پیش فرض سیستم را --خط جدید گزینه تاثیری روی این گزینه ندارد. دنباله دار
فضای سفید از هر خط حذف می شود و خطوط خالی نادیده گرفته می شوند. یک خالی
فایل حاوی هیچ الگوی نیست و بنابراین با چیزی مطابقت ندارد. نظرات را هم ببینید
در مورد الگوهای متعدد در مقابل یک الگوی واحد با گزینه های جایگزین در
شرح -e در بالا.
اگر این گزینه بیش از یک بار داده شود، تمام فایل های مشخص شده خوانده می شوند. یک داده
خط خروجی می شود اگر هر یک از الگوها با آن مطابقت داشته باشد. نام فایل را می توان به صورت "-" داد
برای مراجعه به ورودی استاندارد. چه زمانی -f استفاده می شود، الگوهای مشخص شده در
خط فرمان با استفاده از -e همچنین ممکن است وجود داشته باشد؛ آنها قبل از فایل تست می شوند
الگوها با این حال، هیچ الگوی دیگری از خط فرمان گرفته نشده است. همه
آرگومان ها به عنوان نام مسیرهایی که باید جستجو شوند در نظر گرفته می شوند.
---فایل لیست=نام فایل
فهرستی از فایلها و/یا دایرکتوریهایی را که قرار است از فایلهای داده شده اسکن شوند، بخوانید
فایل، یک در هر خط. فضای سفید انتهایی از هر خط حذف شده و خالی است
خطوط نادیده گرفته می شوند این مسیرها قبل از هر مسیری که در لیست ذکر شده است پردازش می شوند
خط فرمان. نام فایل را می توان به صورت "-" برای ارجاع به ورودی استاندارد در نظر گرفت.
If --فایل و ---فایل لیست هر دو به عنوان "-" مشخص می شوند، ابتدا الگوها خوانده می شوند.
این فقط زمانی مفید است که ورودی استاندارد یک ترمینال باشد، که از آن بیشتر است
خطوط (فهرست فایل ها) را می توان پس از علامت پایان فایل خواند. اگر این
گزینه بیش از یک بار داده می شود، تمام فایل های مشخص شده خوانده می شوند.
---فایل آفست
به جای نشان دادن خطوط یا بخش هایی از خطوط که مطابقت دارند، هر مسابقه را به عنوان یک نشان دهید
افست از ابتدای فایل و طول، که با کاما از هم جدا شده است. در این
حالت، هیچ زمینه ای نشان داده نمی شود. یعنی -A, -Bو -C گزینه ها نادیده گرفته می شوند اگر
بیش از یک مسابقه در یک خط وجود دارد که هر یک به طور جداگانه نشان داده شده است. این
گزینه متقابلاً منحصر به فرد است --خطوط افست و --فقط تطبیق.
-H, -- with-filename
هنگام جستجو، نام فایل را در ابتدای خطوط خروجی اجباری کنید
یک فایل واحد به طور پیش فرض، نام فایل در این مورد نشان داده نمی شود. برای تطبیق
در خطوط، نام فایل با دو نقطه دنبال می شود. برای خطوط زمینه، خط فاصله
جدا کننده استفاده می شود. اگر یک شماره خط نیز در حال خروجی باشد، از فایل پیروی می کند
نام.
-h, -- بدون نام فایل
هنگام جستجوی چندین فایل، نام فایل های خروجی را سرکوب کنید. به صورت پیش فرض،
هنگامی که چندین فایل جستجو می شوند، نام فایل ها نشان داده می شود. برای تطبیق خطوط،
پس از نام فایل یک دونقطه وجود دارد. برای خطوط زمینه، از جداکننده خط فاصله استفاده می شود.
اگر شماره خط نیز در حال خروجی باشد، از نام فایل پیروی می کند.
--کمک خروجی پیام راهنما، ارائه جزئیات مختصری از گزینه های فرمان و نوع فایل
پشتیبانی کنید و سپس خارج شوید. هر چیز دیگری در خط فرمان نادیده گرفته می شود.
-I با فایلهای باینری بهعنوان عدم تطبیق رفتار کنید. این معادل است --دودویی-
فایل ها=بدون مسابقه.
-i, --نادیده گرفتن مورد
در طول مقایسه، تمایزهای حروف بزرگ و کوچک را نادیده بگیرید.
--عبارتند از=الگو
در صورت وجود --عبارتند از الگوها مشخص شده اند، تنها فایل هایی که پردازش می شوند هستند
آنهایی که با یکی از الگوها مطابقت دارند (و با یک مطابقت ندارند -- استثناء کردن الگو).
این گزینه روی دایرکتوری ها تأثیر نمی گذارد، اما برای همه فایل ها، خواه
فهرست شده در خط فرمان، به دست آمده از ---فایل لیست، یا با اسکن a
فهرست راهنما. این الگو یک عبارت منظم PCRE است و با آن مطابقت دارد
جزء نهایی نام فایل، نه کل مسیر. در -F, -wو -x
گزینه ها برای این الگو اعمال نمی شوند. گزینه ممکن است به هر تعداد داده شود
بار. اگر نام فایل با هر دو مطابقت داشته باشد --عبارتند از و -- استثناء کردن الگو، آن است
مستثنی شده است. هیچ فرم کوتاهی برای این گزینه وجود ندارد.
--include-from=نام فایل
هر خط غیر خالی از فایل را به عنوان داده برای یک در نظر بگیرید --عبارتند از گزینه. چی
یک خط جدید برای این منظور پیش فرض سیستم عامل است. در
--خط جدید گزینه تاثیری روی این گزینه ندارد. این گزینه ممکن است داده شود
تعداد دفعات؛ تمام فایل ها خوانده می شوند
-- شامل- کارگردان=الگو
در صورت وجود -- شامل- کارگردان الگوها مشخص شده اند، تنها دایرکتوری هایی که هستند
پردازش شده آنهایی هستند که با یکی از الگوها مطابقت دارند (و با یک مطابقت ندارند
-- استثناء- کارگردان الگو). این امر برای همه دایرکتوری ها، خواه در فهرست فهرست شده باشد، اعمال می شود
خط فرمان، به دست آمده از ---فایل لیست، یا با اسکن دایرکتوری والد. در
الگو یک عبارت منظم PCRE است و با مولفه نهایی مطابقت دارد
از نام دایرکتوری، نه کل مسیر. در -F, -wو -x گزینه ها نیست
به این الگو اعمال شود. این گزینه ممکن است هر چند بار داده شود. اگر یک
دایرکتوری با هر دو مطابقت دارد -- شامل- کارگردان و -- استثناء- کارگردان، مستثنی شده است. وجود دارد
هیچ فرم کوتاهی برای این گزینه وجود ندارد.
-L, --فایلها-بدون مطابقت
به جای خروجی خطوط از فایل ها، فقط نام فایل ها را خروجی بگیرید
که حاوی هیچ خطی نیست که خروجی داشته باشد. نام هر فایل است
خروجی یک بار، در یک خط جداگانه.
-l, --فایلها-با-مطابقات
به جای خروجی خطوط از فایل ها، فقط نام فایل ها را خروجی بگیرید
حاوی خطوطی است که خروجی میشد. هر نام فایل یک بار، روشن خروجی می شود
یک خط جداگانه جستجو معمولاً به محض یافتن یک خط منطبق در آن متوقف می شود
یک فایل. با این حال، اگر -c گزینه (شمارش) نیز استفاده می شود، تطبیق در ادامه می یابد
به منظور به دست آوردن تعداد صحیح، و آن دسته از فایل هایی که حداقل یک تطابق دارند
همراه با تعداد آنها ذکر شده است. استفاده از این گزینه با -c راهی است از
از بین بردن لیست فایل های بدون تطابق.
--برچسب=نام
این گزینه نامی را برای ورودی استاندارد هنگام نام گذاری فایل ها ارائه می دهد
در حال خروجی هستند. اگر ارائه نشده باشد، از "(ورودی استاندارد)" استفاده می شود. کوتاه نیست
فرم برای این گزینه
---line-buffered
هنگامی که این گزینه داده می شود، ورودی خوانده می شود و خط به خط پردازش می شود
خروجی پس از هر نوشتن پاک می شود. به طور پیش فرض، ورودی در تکه های بزرگ خوانده می شود،
مگر pcregrep می تواند تعیین کند که در حال خواندن از یک پایانه است (که است
در حال حاضر فقط در محیط های مشابه یونیکس امکان پذیر است). خروجی به ترمینال است
معمولاً به طور خودکار توسط سیستم عامل شستشو می شود. این گزینه می تواند باشد
زمانی مفید است که ورودی یا خروجی به یک لوله متصل است و شما نمی خواهید
pcregrep برای بافر کردن حجم زیادی از داده ها با این حال، استفاده از آن تاثیر خواهد گذاشت
عملکرد، و -M گزینه (چند خطی) دیگر کار نمی کند.
--خطوط افست
به جای نشان دادن خطوط یا بخش هایی از خطوط که مطابقت دارند، هر مسابقه را به عنوان یک خط نشان دهید
عدد، افست از ابتدای خط، و طول. شماره خط است
با کولون خاتمه می یابد (مثلاً به -n گزینه)، و افست و طول
با کاما از هم جدا می شوند. در این حالت هیچ زمینه ای نشان داده نمی شود. یعنی -A,
-Bو -C گزینه ها نادیده گرفته می شوند اگر در یک خط بیش از یک مسابقه وجود داشته باشد، هر کدام
از آنها به طور جداگانه نشان داده شده است. این گزینه متقابلاً منحصر به فرد است --فایل-
جبران و --فقط تطبیق.
--محلی=نام محلی
این گزینه محلی را برای تطبیق الگو مشخص می کند. آن را نادیده می گیرد
ارزش در LC_ALL or LC_CTYPE متغیرهای محیطی. اگر محلی وجود ندارد
مشخص شده، از پیشفرض کتابخانه PCRE (معمولاً محلی «C») استفاده میشود. وجود دارد
هیچ فرم کوتاهی برای این گزینه وجود ندارد.
--تطابق-حد=عدد
پردازش برخی از الگوهای بیان منظم می تواند به مقدار بسیار زیادی نیاز داشته باشد
حافظه، در برخی موارد منجر به خرابی برنامه در صورت عدم دسترسی کافی می شود.
سایر الگوها ممکن است برای جستجوی همه تطابقات ممکن زمان زیادی ببرد
رشته های. در pcre_exec() تابعی که توسط آن فراخوانی می شود pcregrep برای انجام تطبیق
دارای دو پارامتر است که می تواند منابعی را که استفاده می کند محدود کند.
La --تطابق-حد گزینه ابزاری برای محدود کردن استفاده از منابع فراهم می کند
الگوهای پردازشی که قرار نیست مطابقت داشته باشند، اما بسیار بزرگ هستند
تعداد احتمالات در درختان جستجوی آنها نمونه کلاسیک یک الگو است
که از تکرارهای نامحدود تو در تو استفاده می کند. در داخل، PCRE از تابعی به نام استفاده می کند
همخوانی داشتن() که آن را به طور مکرر (گاهی به صورت بازگشتی) فرا می خواند. حد تعیین شده توسط
--تطابق-حد بر تعداد دفعاتی که این تابع در طول a فراخوانی می شود تحمیل می شود
مسابقه، که تأثیر آن بر محدود کردن مقدار پسرفتی است که ممکن است انجام شود
به جای آن.
La ---recursion-limit گزینه مشابه است --تطابق-حد، اما به جای
محدود کردن تعداد کل دفعات آن همخوانی داشتن() نامیده می شود، عمق را محدود می کند
تماس های بازگشتی، که به نوبه خود میزان حافظه قابل استفاده را محدود می کند.
عمق بازگشت تعداد کمتری از تعداد کل تماس ها است، زیرا
همه تماس ها به همخوانی داشتن() بازگشتی هستند. این محدودیت فقط در صورتی قابل استفاده است که تنظیم شده باشد
کوچکتر از --تطابق-حد.
هیچ فرم کوتاهی برای این گزینه ها وجود ندارد. تنظیمات پیش فرض مشخص شده است
هنگامی که کتابخانه PCRE کامپایل می شود، پیش فرض پیش فرض 10 میلیون است.
-M, --چند خطی
اجازه دهید الگوها با بیش از یک خط مطابقت داشته باشند. وقتی این گزینه داده می شود، الگوها
ممکن است به طور مفید شامل کاراکترهای خط جدید تحت اللفظی و رخدادهای داخلی ^ باشد
و کاراکترهای $. خروجی یک مسابقه موفق ممکن است شامل بیش از یک باشد
خطی که آخرین آن خطی است که مسابقه در آن به پایان رسید. اگر مطابقت داشت
رشته با یک دنباله خط جدید به پایان می رسد و خروجی در انتهای آن خط به پایان می رسد.
هنگامی که این گزینه تنظیم شود، کتابخانه PCRE در حالت "چند خطی" فراخوانی می شود. آنجا
محدودیتی برای تعداد خطوطی است که میتوان با آنها مطابقت کرد، که از طریق آن اعمال میشود
pcregrep فایل ورودی را هنگام اسکن آن بافر می کند. با این حال، pcregrep تضمین می کند که
حداقل 8K کاراکتر یا بقیه سند (هر کدام کوتاهتر است)
برای تطبیق رو به جلو و به طور مشابه کاراکترهای 8K قبلی (یا
همه کاراکترهای قبلی، اگر کمتر از 8K باشد) تضمین شده است که در دسترس هستند
برای نگاه کردن به اظهارات وقتی ورودی به خط خوانده می شود، این گزینه کار نمی کند
خط (نگاه کنید به ---line-buffered.)
-N نوع جدید, --خط جدید=نوع جدید
کتابخانه PCRE از پنج قرارداد مختلف برای نشان دادن انتهای آن پشتیبانی می کند
خطوط آنها دنباله های تک کاراکتری CR (بازگشت حمل) و LF هستند
(linefeed)، دنباله دو کاراکتری CRLF، یک قرارداد "anycrlf"، که
هر یک از سه نوع قبلی را به رسمیت می شناسد، و یک قرارداد "هر" که در آن
هر دنباله پایان خط یونیکد برای پایان دادن به یک خط فرض می شود. دنباله های یونیکد
سه مورد ذکر شده، به علاوه VT (برگه عمودی، U+000B)، FF (فید فرم،
U+000C)، NEL (خط بعدی، U+0085)، LS (جداکننده خط، U+2028) و PS (بند)
جداکننده، U+2029).
هنگامی که کتابخانه PCRE ساخته می شود، یک توالی پایان خط پیش فرض مشخص می شود.
این معمولاً توالی استاندارد برای سیستم عامل است. مگر اینکه
در غیر این صورت توسط این گزینه مشخص شده است، pcregrep از پیش فرض کتابخانه استفاده می کند. در
مقادیر ممکن برای این گزینه CR، LF، CRLF، ANYCRLF یا ANY هستند. این باعث می شود
امکان استفاده pcregrep برای اسکن فایل هایی که از محیط های دیگر آمده اند
بدون نیاز به تغییر انتهای خطوط آنها. اگر داده هایی که در حال اسکن هستند
با کنوانسیون تعیین شده توسط این گزینه موافق نیست، pcregrep ممکن است رفتار کند
راه های عجیب و غریب توجه داشته باشید که این گزینه برای فایل های مشخص شده توسط -f,
-- استثناء-از، یا --شامل-از گزینه هایی که انتظار می رود از آن استفاده کنند
دنباله خط جدید استاندارد سیستم عامل.
-n, --شماره خط
قبل از هر خط خروجی، شماره خط آن در فایل، و به دنبال آن یک دونقطه برای
خطوط منطبق یا خط فاصله برای خطوط زمینه. اگر نام فایل نیز موجود باشد
خروجی، قبل از شماره خط قرار دارد. این گزینه اجباری است اگر --خطوط افست is
استفاده شده.
-- بدون جیت اگر کتابخانه PCRE با پشتیبانی از کامپایل به موقع ساخته شده باشد (که
تطبیق را تسریع می کند) pcregrep به طور خودکار از این استفاده می کند، مگر اینکه اینطور باشد
به صراحت در زمان ساخت غیرفعال شد. از این گزینه می توان برای غیرفعال کردن استفاده از
JIT در زمان اجرا برای تست و کار کردن مشکلات دور ارائه شده است. آی تی
هرگز نباید در استفاده معمولی مورد نیاز باشد.
-o, --فقط تطبیق
فقط بخشی از خط را نشان دهید که با یک الگو مطابقت دارد به جای کل خط.
در این حالت هیچ زمینه ای نشان داده نمی شود. یعنی -A, -Bو -C گزینه ها هستند
نادیده گرفته شده است. اگر بیش از یک مسابقه در یک خط وجود داشته باشد، هر یک از آنها نشان داده می شود
بصورت جداگانه. اگر -o همراه با -v (برای یافتن حس تطابق را معکوس کنید
خطوط غیر منطبق)، هیچ خروجی تولید نمی شود، اما کد بازگشتی تنظیم شده است
مناسب اگر قسمت منطبق شده از خط خالی باشد، هیچ چیزی خروجی نمی شود
مگر اینکه نام فایل یا شماره خط در حال چاپ باشد که در این صورت هستند
در یک خط خالی نشان داده شده است. این گزینه متقابلاً منحصر به فرد است --فایل-
جبران و --خطوط افست.
-oعدد, --فقط تطبیق=عدد
فقط بخشی از خط را نشان دهید که با پرانتزهای تصویر مطابقت دارد
شماره داده شده تا 32 پرانتز گرفتن پشتیبانی می شود و -o0 پشتیبانی می شود
معادل -o بدون شماره زیرا این گزینه ها را می توان بدون ارائه داد
آرگومان (به بالا مراجعه کنید)، اگر آرگومان موجود باشد، باید در همان آرگومان آورده شود
مورد پوسته، به عنوان مثال، -o3 یا --only-matching=2. نظرات داده شده برای
مورد غیر استدلالی بالا در مورد این مورد نیز صدق می کند. اگر گرفتن مشخص شده است
پرانتز در الگو وجود ندارد، یا در مسابقه تنظیم نشده است، هیچ چیز
خروجی است مگر اینکه نام فایل یا شماره خط در حال چاپ باشد.
اگر این گزینه چندین بار داده شود، چندین زیررشته در خروجی داده می شود
دستور گزینه ها داده شده است. به عنوان مثال، -o3 -o1 -o3 باعث ایجاد زیررشته ها می شود
با گرفتن پرانتز 3 و 1 و سپس دوباره 3 برای خروجی مطابقت داده می شود. توسط
به طور پیش فرض، جداکننده وجود ندارد (اما گزینه بعدی را ببینید).
--om-جداکننده=متن
یک رشته جداکننده را برای چندین رخداد مشخص کنید -o. پیش فرض یک است
رشته خالی رشته های جداکننده هرگز رنگی نمی شوند.
-q, --ساکت
بی سر و صدا کار کنید، یعنی چیزی جز پیام های خطا نمایش داده نشود. وضعیت خروج
نشان می دهد که آیا هیچ منطبقی پیدا شده است یا خیر.
-r, - بازگشتی
اگر هر مسیر مشخصی یک فهرست است، فایلهای موجود در آن را به صورت بازگشتی اسکن کنید
یادداشت هر کدام --عبارتند از و -- استثناء کردن تنظیمات. به طور پیش فرض، یک فهرست به صورت خوانده می شود
یک فایل معمولی؛ در برخی از سیستم عامل ها، این یک پایان فوری فایل را نشان می دهد.
این گزینه مختصری برای تنظیم است -d گزینه "recurse".
---recursion-limit=عدد
دیدن --تطابق-حد در بالا.
-s, --هیچ پیامی وجود ندارد
پیام های خطا در مورد فایل های موجود یا ناخوانا را سرکوب کنید. چنین فایل هایی هستند
بی سر و صدا پرش شد با این حال، کد بازگشتی همچنان 2 است، حتی اگر موارد منطبق پیدا شود
در فایل های دیگر
-u, --utf-8
در حالت UTF-8 کار کنید. این گزینه فقط در صورتی در دسترس است که PCRE کامپایل شده باشد
با پشتیبانی از UTF-8 همه الگوها (از جمله آنهایی که برای هر کدام -- استثناء کردن و
--عبارتند از گزینه ها) و تمام خطوط موضوعی که اسکن می شوند باید رشته های معتبر باشند
از کاراکترهای UTF-8
-V, - نسخه
شماره نسخه را بنویسید pcregrep و کتابخانه PCRE به استاندارد
خروجی و سپس خروج. هر چیز دیگری در خط فرمان نادیده گرفته می شود.
-v, --مطابقت معکوس
معکوس حس تطابق، به طوری که خطوط که انجام می دهند نه مطابقت با هر یک از
الگوها آنهایی هستند که پیدا می شوند.
-w, --word-regex, --word-regexp
الگوها را مجبور کنید فقط با کل کلمات مطابقت داشته باشند. این معادل داشتن \b در است
شروع و پایان الگو این گزینه فقط برای الگوهایی اعمال می شود که
با محتویات فایل ها مطابقت دارند. در مورد الگوها صدق نمی کند
مشخص شده توسط هر یک از --عبارتند از or -- استثناء کردن گزینه.
-x, --line-regex, --line-regexp
الگوها را مجبور به لنگر انداختن کنید (هر کدام باید از ابتدای شروع به تطبیق شوند
یک خط) و علاوه بر این، از آنها بخواهید تا کل خطوط را مطابقت دهند. این معادل است
داشتن کاراکترهای ^ و $ در ابتدا و انتهای هر شاخه جایگزین
هر الگو این گزینه فقط برای الگوهایی اعمال می شود که با آنها مطابقت دارند
محتویات فایل ها؛ این برای الگوهای مشخص شده توسط هیچ یک از آنها اعمال نمی شود
--عبارتند از or -- استثناء کردن گزینه.
محیط زیست متغیرها
متغیرهای محیطی LC_ALL و LC_CTYPE به ترتیب، برای یک منطقه بررسی می شوند.
اولین موردی که تنظیم می شود استفاده می شود. این می تواند توسط --محلی گزینه. اگر نه
محلی تنظیم شده است، پیش فرض کتابخانه PCRE (معمولاً محلی "C") استفاده می شود.
اخبار
La -N (--خط جدید) گزینه اجازه می دهد pcregrep برای اسکن فایل ها با قراردادهای خط جدید مختلف
از پیش فرض هر قسمت از فایل های ورودی که در خروجی استاندارد نوشته می شوند، هستند
به طور یکسان، با هر دنباله خط جدیدی که در ورودی دارند، کپی شده اند. با این حال
تنظیم این گزینه بر تفسیر فایل های مشخص شده توسط -f,
-- استثناء-از، یا --شامل-از گزینه هایی که فرض می شود از سیستم عامل استفاده می کنند
دنباله خط جدید استاندارد، و بر روشی که در آن تأثیری ندارد pcregrep می نویسد:
پیام های اطلاعاتی به جریان های خطا و خروجی استاندارد. برای اینها از
رشته "\n" برای نشان دادن خطوط جدید، با تکیه بر کتابخانه CI/O برای تبدیل آن به یک
دنباله مناسب
OPTIONS COMPATIBILITY
بسیاری از اشکال کوتاه و بلند pcregrepگزینه های 's مانند گنو هستند grep استفاده
برنامه هر گزینه طولانی از فرم --xxx-regexp (اصطلاحات گنو) نیز به عنوان موجود است
-xxx-regex (اصطلاحات PCRE). با این حال ---فایل لیست, ---فایل آفست, -- شامل- کارگردان,
--خطوط افست, --محلی, --تطابق-حد, -M, --چند خطی, -N, --خط جدید, --om-جداکننده,
---recursion-limit, -uو --utf-8 گزینه های خاص هستند pcregrep، همانطور که استفاده از
--فقط تطبیق گزینه با یک عدد پرانتز گرفتن.
اگرچه اکثر گزینه های رایج به یک شکل کار می کنند، اما تعداد کمی از آنها متفاوت هستند pcregrep.
به عنوان مثال --عبارتند از آرگومان گزینه یک glob برای گنو است grep استفاده، اما معمولی
بیان برای pcregrep. اگر هر دو -c و -l گزینه های داده شده است، گنو grep فقط فایل را فهرست می کند
نام ها، بدون شمارش، اما pcregrep شمارش را می دهد.
OPTIONS با داده ها
چهار روش مختلف وجود دارد که از طریق آنها می توان یک گزینه با داده را مشخص کرد. اگر کوتاه
از گزینه form استفاده می شود، داده ها ممکن است فوراً دنبال شوند یا (به استثنای یک استثنا) در بعدی
مورد خط فرمان مثلا:
-f/some/file
-f /some/file
استثناء است -o گزینه ای که ممکن است با داده یا بدون داده ظاهر شود. به خاطر همین،
اگر داده وجود داشته باشد، باید فوراً در همان مورد دنبال شود، برای مثال -o3.
اگر از گزینه فرم طولانی استفاده شود، داده ها ممکن است در همان آیتم خط فرمان ظاهر شوند.
با یک کاراکتر مساوی از هم جدا می شود، یا (با دو استثنا) ممکن است در بعدی ظاهر شود
مورد خط فرمان مثلا:
--file=/some/file
--file /some/file
با این حال، توجه داشته باشید که اگر می خواهید نام فایلی که با ~ شروع می شود را به عنوان داده در پوسته ارائه دهید
دستور دهید، و پوسته را به دایرکتوری اصلی گسترش دهید، باید نام فایل را جدا کنید
از گزینه، زیرا پوسته ~ را به طور خاص درمان نمی کند مگر اینکه در ابتدای آن باشد
یک آیتم.
استثناء موارد فوق عبارتند از --رنگ (و یا --رنگ) و --فقط تطبیق گزینه ها، برای
که داده ها اختیاری است. اگر یکی از این گزینه ها دارای داده باشد، باید داده شود
شکل اول، با استفاده از یک کاراکتر برابر. در غیر این صورت pcregrep فرض خواهد شد که ندارد
داده است.
تطابق خطاها
امکان ارائه یک عبارت منظم وجود دارد که زمان زیادی طول می کشد تا مطابقت نداشته باشد
خطوط خاص چنین الگوهایی معمولاً شامل تکرارهای نامعین تو در تو هستند، برای مثال:
(a+)*\d وقتی با یک خط a بدون رقم نهایی مطابقت داده شود. تابع تطبیق PCRE
دارای محدودیت منابع است که باعث می شود در این شرایط سقط شود. اگر این اتفاق بیفتد،
pcregrep یک پیام خطا و خطی که باعث ایجاد مشکل شده است را به استاندارد خروجی می دهد
جریان خطا اگر بیش از 20 خطا وجود داشته باشد، pcregrep تسلیم شد.
La --تطابق-حد گزینه ای از pcregrep می توان برای تنظیم محدودیت کلی منابع استفاده کرد. آنجا
یک گزینه دوم به نام است ---recursion-limit که محدودیتی در میزان حافظه تعیین می کند
(معمولاً پشته) که استفاده می شود (به بحث در مورد این گزینه ها در بالا مراجعه کنید).
عیب یابی
در صورت یافتن موارد منطبق، وضعیت خروج 0، اگر مطابقت پیدا نشد، 1، و برای نحو، 2 است.
خطاها، خطوط بیش از حد طولانی، فایلهای موجود یا غیرقابل دسترس (حتی اگر موارد مشابه در
فایل های دیگر) یا خطاهای تطبیق بیش از حد. با استفاده از -s گزینه ای برای سرکوب پیام های خطا
در مورد فایلهای غیرقابل دسترسی روی کد برگشتی تأثیری نمیگذارد.
با استفاده از خدمات onworks.net از pcregrep آنلاین استفاده کنید