آموزش معرفی و بررسی

استفاده از Grep و عبارات معمولی برای جستجوی الگوهای متن در لینوکس

معرفی

دستور grep یکی از مفیدترین دستورات در محیط ترمینال لینوکس است. نام grep مخفف “global regular expression print” است. این بدان معناست که می توانید از grep برای بررسی اینکه آیا ورودی دریافت شده با الگوی مشخص شده مطابقت دارد یا خیر ، استفاده کنید. این برنامه به ظاهر بی اهمیت بسیار قدرتمند است. توانایی مرتب سازی ورودی بر اساس قوانین پیچیده ، آن را به یک پیوند محبوب در بسیاری از زنجیره های فرمان تبدیل می کند.

در این آموزش ، شما گزینه های دستور grep را بررسی می کنید و سپس برای جستجوی پیشرفته تر ، از عبارات معمولی استفاده می کنید.

پیش نیازها

برای پیگیری این راهنما ، به رایانه ای نیاز دارید که از سیستم عامل لینوکس استفاده می کند. این می تواند یک سرور خصوصی مجازی باشد که با SSH یا دستگاه محلی خود به آن متصل شده اید. توجه داشته باشید که این آموزش با استفاده از سرور لینوکس دارای Ubuntu 20.04 تأیید شده است ، اما مثالهای ذکر شده باید در رایانه ای اجرا شود که هر نسخه از توزیع لینوکس را اجرا می کند.

اگر قصد دارید از سرور راه دور برای پیروی از این راهنما استفاده کنید ، توصیه می کنیم ابتدا راهنمای راه اندازی سرور اولیه ما را تکمیل کنید. با انجام این کار شما می توانید یک محیط سرور امن-از جمله کاربر غیر root با امتیازات sudo و فایروال پیکربندی شده با UFW-را تنظیم کنید-که می توانید از آن برای ایجاد مهارت های لینوکس خود استفاده کنید.

به عنوان یک جایگزین ، ما شما را تشویق می کنیم که از ترمینال تعاملی تعبیه شده در این صفحه برای آزمایش دستورات نمونه در این آموزش استفاده کنید. روی راه اندازی یک ترمینال تعاملی زیر کلیک کنید! برای باز کردن پنجره ترمینال و شروع به کار با محیط لینوکس (اوبونتو).

کاربرد اولیه

در این آموزش ، شما از grep برای جستجوی مجوز عمومی GNU نسخه 3 برای کلمات و عبارات مختلف استفاده می کنید.

اگر از سیستم اوبونتو استفاده می کنید ، می توانید فایل را در پوشه/usr/share/common-licenses پیدا کنید. آن را در فهرست اصلی خود کپی کنید:

cp /usr/share/common-licenses/GPL-3 .

اگر از سیستم دیگری استفاده می کنید ، از دستور curl برای بارگیری نسخه استفاده کنید:

curl -o GPL-3 https://www.gnu.org/licenses/gpl-3.0.txt

همچنین در این آموزش از فایل مجوز BSD استفاده خواهید کرد. در لینوکس ، می توانید آن را با دستور زیر در فهرست اصلی خود کپی کنید:

cp /usr/share/common-licenses/BSD .

اگر از سیستم دیگری استفاده می کنید ، فایل را با دستور زیر ایجاد کنید:

cat << ‘EOF’ > BSD
Copyright (c) The Regents of the University of California.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS “AS IS” AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
EOF

اکنون که فایل ها را دارید ، می توانید کار با grep را شروع کنید.

در ابتدایی ترین شکل ، از grep برای مطابقت با الگوهای تحت اللفظی درون یک فایل متنی استفاده می کنید. این بدان معناست که اگر grep یک کلمه را برای جستجو ارسال کنید ، هر خطی در فایل حاوی آن کلمه چاپ می شود.

دستور زیر را برای استفاده از grep برای جستجوی هر خطی که حاوی کلمه GNU است اجرا کنید:

grep “GNU” GPL-3

اولین استدلال ، GNU ، الگویی است که شما در جستجوی آن هستید ، در حالی که آرگومان دوم ، GPL-3 ، فایل ورودی است که می خواهید جستجو کنید.

خروجی حاصل هر خط حاوی متن الگو خواهد بود:

Output
                    GNU GENERAL PUBLIC LICENSE
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
GNU General Public License for most of our software; it applies also to
  Developers that use the GNU GPL protect your rights with two steps:
  "This License" refers to version 3 of the GNU General Public License.
  13. Use with the GNU Affero General Public License.
under version 3 of the GNU Affero General Public License into a single
...
...

در برخی از سیستم ها ، الگویی که جستجو کرده اید در خروجی مشخص می شود.

گزینه های مشترک

به طور پیش فرض ، grep الگوی مشخص شده را در داخل فایل ورودی جستجو می کند و خطوط را پیدا می کند. با افزودن چند پرچم اختیاری به grep ، می توانید این رفتار را مفیدتر کنید.

اگر می خواهید grep “case” پارامتر جستجوی شما را نادیده بگیرد و تغییرات بزرگ و کوچک را جستجو کند ، می توانید گزینه -i یا-حروف کوچک را مشخص کنید.

هر نمونه از کلمه License (با حروف بزرگ ، کوچک یا مخلوط) را در همان فایل قبلی با دستور زیر جستجو کنید:

grep -i “license” GPL-3

نتایج شامل: LICENSE, license, و License:

Output
                    GNU GENERAL PUBLIC LICENSE
 of this license document, but changing it is not allowed.
  The GNU General Public License is a free, copyleft license for
  The licenses for most software and other practical works are designed
the GNU General Public License is intended to guarantee your freedom to
GNU General Public License for most of our software; it applies also to
price.  Our General Public Licenses are designed to make sure that you
(1) assert copyright on the software, and (2) offer you this License
  "This License" refers to version 3 of the GNU General Public License.
  "The Program" refers to any copyrightable work licensed under this
...
...

اگر نمونه ای در LiCeNsE وجود داشت ، آن نیز بازگردانده می شد.

اگر می خواهید تمام خطوطی که الگوی مشخصی ندارند را پیدا کنید ، می توانید از گزینه -v یا –invert -match استفاده کنید.

هر خطی را که حاوی کلمه the در مجوز BSD نیست با دستور زیر جستجو کنید:

این خروجی را دریافت خواهید کرد:

Output
All rights reserved.

Redistribution and use in source and binary forms, with or without
are met:
    may be used to endorse or promote products derived from this software
    without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
...
...

از آنجا که شما گزینه “نادیده گرفتن مورد” را مشخص نکرده اید ، دو مورد آخر بدون کلمه the برگشت داده شد.

اغلب دانستن شماره خطی که کبریت ها روی آن اتفاق می افتد مفید است. می توانید با استفاده از گزینه -n یا –line -number این کار را انجام دهید. مثال قبلی را با این پرچم اضافه شده دوباره اجرا کنید:

grep -vn “the” BSD

این متن زیر را برمی گرداند:

Output
2:All rights reserved.
3:
4:Redistribution and use in source and binary forms, with or without
6:are met:
13:   may be used to endorse or promote products derived from this software
14:   without specific prior written permission.
15:
16:THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17:ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
...
...

اگر می خواهید در هر سطری که شامل خط نیست تغییراتی ایجاد کنید ، می توانید به شماره خط اشاره کنید. این امر به ویژه هنگام کار با کد منبع بسیار مفید است

عبارات با قاعده

در مقدمه ، آموختید که grep مخفف “print global express print” است. “عبارت معمولی” یک رشته متنی است که یک الگوی جستجوی خاص را توصیف می کند.

برنامه های کاربردی مختلف و زبان های برنامه نویسی عبارات معمولی را کمی متفاوت اجرا می کنند. در این آموزش شما فقط یک زیرمجموعه کوچک از نحوه توصیف الگوهای grep را بررسی خواهید کرد.

مسابقات لفظی

در مثالهای قبلی در این آموزش ، هنگامی که کلمات GNU و the را جستجو می کردید ، در واقع به دنبال عبارات معمولی معمولی بودید که با رشته دقیق کاراکترهای GNU و the مطابقت داشته باشد. الگوهایی که کاراکترهای مورد نظر را دقیقاً مشخص می کنند “تحت اللفظی” نامیده می شوند ، زیرا آنها الگو را به معنای واقعی کلمه ، شخصیت به کاراکتر مطابقت می دهند.

مفید است که اینها را به جای تطبیق یک کلمه ، با رشته ای از کاراکترها مطابقت دهید. با یادگیری الگوهای پیچیده تر ، این یک تمایز مهمتر خواهد شد.

همه کاراکترهای الفبایی و عددی (و برخی دیگر از کاراکترها) به معنای واقعی کلمه مطابقت دارند مگر اینکه توسط مکانیسم های بیان دیگر اصلاح شوند.

مسابقات لنگر

لنگرها کاراکترهای خاصی هستند که مشخص می کنند کبریت در کجا باید معتبر باشد.

به عنوان مثال ، با استفاده از لنگرها ، می توانید مشخص کنید که فقط می خواهید در مورد خطوط منطبق با GNU در ابتدای خط بدانید. برای انجام این کار ، می توانید از لنگر ^ قبل از رشته تحت اللفظی استفاده کنید.

دستور زیر را برای جستجوی فایل GPL-3 و یافتن خطوطی که GNU در ابتدای خط رخ می دهد ، اجرا کنید:

grep “^GNU” GPL-3

این دستور دو خط زیر را برمی گرداند:

Output
GNU General Public License for most of our software; it applies also to
GNU General Public License, you may choose any version ever published

به طور مشابه ، شما از anchor $ در انتهای الگو استفاده می کنید تا نشان دهید که تطابق فقط در صورتی معتبر خواهد بود که در انتهای یک خط رخ دهد.

این دستور با هر سطری که به کلمه ختم می شود و در فایل GPL-3 مطابقت دارد:

grep “and$” GPL-3

این خروجی را دریافت خواهید کرد:

Output
that there is no warranty for this free software.  For both users' and
  The precise terms and conditions for copying, distribution and
  License.  Each licensee is addressed as "you".  "Licensees" and
receive it, in any medium, provided that you conspicuously and
    alternative is allowed only occasionally and noncommercially, and
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
provisionally, unless and until the copyright holder explicitly and
receives a license from the original licensors, to run, modify and
make, use, sell, offer for sale, import and otherwise run, modify and

مطابقت با هر کاراکتر

کاراکتر (.) در عبارات معمولی به این معنی استفاده می شود که هر کاراکتر منفرد می تواند در محل مشخص شده وجود داشته باشد.

برای مثال ، برای مطابقت هر چیزی در فایل GPL-3 که دارای دو نویسه است و سپس رشته cept ، از الگوی زیر استفاده می کنید:

grep “..cept” GPL-3

این دستور خروجی زیر را برمی گرداند:

Output
use, which is precisely where it is most unacceptable.  Therefore, we
infringement under applicable copyright law, except executing it on a
tells the user that there is no warranty for the work (except to the
License by making exceptions from one or more of its conditions.
form of a separately written license, or stated as exceptions;
  You may not propagate or modify a covered work except as expressly
  9. Acceptance Not Required for Having Copies.
...
...

این خروجی دارای موارد پذیرش و استثنا و تغییرات دو کلمه است. اگر این الگو نیز یافت می شد ، با z2cept مطابقت داشت.

عبارات براکت

با قرار دادن گروهی از کاراکترها در داخل پرانتز (\ [و \]) ، می توانید مشخص کنید که کاراکتر آن موقعیت می تواند هر یک از کاراکترهای موجود در گروه براکت باشد.

به عنوان مثال ، برای یافتن خطوطی که بیش از یک یا دو مورد را شامل می شوند ، باید با استفاده از الگوی زیر آن تغییرات را به طور مختصر مشخص کنید:

grep “t[wo]o” GPL-3

خروجی نشان می دهد که هر دو تغییر در فایل وجود دارد:

Output
your programs, too.
freedoms that you received.  You must make sure that they, too, receive
  Developers that use the GNU GPL protect your rights with two steps:
a computer network, with no transfer of a copy, is not conveying.
System Libraries, or general-purpose tools or generally available free
    Corresponding Source from a network server at no charge.
...
...

نماد براکت گزینه های جالبی را در اختیار شما قرار می دهد. با شروع لیست کاراکترهای داخل براکت ها با کاراکتر ^ ، می توانید الگو را با هر چیزی مطابقت دهید.

این مثال مانند الگوی .ode است ، اما با کد الگو مطابقت ندارد:

grep “[^c]ode” GPL-3

در اینجا خروجی دریافت خواهید کرد:

Output
  1. Source Code.
    model, to give anyone who possesses the object code either (1) a
the only significant mode of use of the product.
notice like this when it starts in an interactive mode:

توجه کنید که در خط دوم برگشتی ، در واقع ، کلمه کد وجود دارد. این نقص بیان عادی یا grep نیست. در عوض ، این خط برگشت داده شد زیرا قبلاً در خط ، حالت الگو ، که در کلمه model یافت می شد ، پیدا شد. خط برگشت داده شد زیرا نمونه ای وجود داشت که با الگو مطابقت داشت.

یکی دیگر از ویژگی های مفید براکت ها این است که می توانید طیف وسیعی از کاراکترها را به جای تایپ تک تک کاراکترهای موجود مشخص کنید.

این بدان معناست که اگر می خواهید هر سطری را که با حرف بزرگ شروع می شود پیدا کنید ، می توانید از الگوی زیر استفاده کنید:

grep “^[A-Z]” GPL-3

در اینجا خروجی این عبارت بر می گردد:

Output
GNU General Public License for most of our software; it applies also to
States should not allow patents to restrict development and use of
License.  Each licensee is addressed as "you".  "Licensees" and
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
System Libraries, or general-purpose tools or generally available free
Source.
User Product is transferred to the recipient in perpetuity or for a
...
...

با توجه به برخی از مسائل مرتب سازی قدیمی ، استفاده از کلاس های کاراکتر POSIX به جای محدوده کاراکترهایی که قبلاً استفاده کرده اید ، دقیق تر است.

بحث در مورد هر کلاس نویسه POSIX خارج از محدوده این راهنما است ، اما مثالی که همان روال قبلی را انجام دهد ، از کلاس کاراکتر \ [: above: \] در انتخاب کننده براکت استفاده می کند:

grep “^[[:upper:]]” GPL-3

خروجی مانند قبل خواهد بود.

الگوی صفر یا بیشتر را تکرار کنید

سرانجام ، یکی از متا کاراکترهای متداول ، ستاره یا *است که به معنی “تکرار کاراکتر یا عبارت قبلی صفر یا بیشتر” است.

برای یافتن هر خط در فایل GPL-3 که حاوی پرانتز باز و بسته است ، فقط حروف و فاصله های بین آنها وجود دارد ، از عبارت زیر استفاده کنید:

grep “([A-Za-z ]*)” GPL-3

خروجی زیر را دریافت خواهید کرد:

Output
 Copyright (C) 2007 Free Software Foundation, Inc.
distribution (with or without modification), making available to the
than the work as a whole, that (a) is included in the normal form of
Component, and (b) serves only to enable use of the work with that
(if any) on which the executable work runs, or a compiler used to
    (including a physical distribution medium), accompanied by the
    (including a physical distribution medium), accompanied by a
    place (gratis or for a charge), and offer equivalent access to the
...
...

تا کنون از علامت ها ، ستاره ها و دیگر کاراکترها در عبارات خود استفاده کرده اید ، اما گاهی اوقات باید به طور خاص آن کاراکترها را جستجو کنید.

فرار از کاراکترهای متا

مواقعی وجود دارد که باید به دنبال یک دوره واقعی یا یک بازوی اصلی باشید ، مخصوصاً هنگام کار با کد منبع یا فایلهای پیکربندی. از آنجا که این نویسه ها در عبارات معمولی معنای خاصی دارند ، باید از این کاراکترها “فرار” کنید تا به grep بگویید که نمی خواهید در این مورد از معنای خاص آنها استفاده کنید.

با استفاده از کاراکتر پشت خط (\) در مقابل کاراکتر که معمولاً معنای خاصی دارد ، از شخصیت ها فرار می کنید.

به عنوان مثال ، برای یافتن هر سطری که با حروف بزرگ شروع می شود و با یک نقطه خاتمه می یابد ، از عبارت زیر استفاده کنید که از پایان دوره فرار می کند به طوری که به جای معنای معمول “هر کاراکتر” یک دوره واقعی را نشان می دهد:

grep “^[A-Z].*\.$” GPL-3

این خروجی است که مشاهده خواهید کرد:

Output
Source.
License by making exceptions from one or more of its conditions.
License would be to refrain entirely from conveying the Program.
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
SUCH DAMAGES.
Also add information on how to contact you by electronic and paper mail.

اکنون بیایید به سایر گزینه های بیان معمولی نگاه کنیم.

توسعه عبارات منظم

دستور grep با استفاده از پرچم -E یا با فراخوانی دستور egrep به جای grep از زبان بیان منظم گسترده تری پشتیبانی می کند.

این گزینه ها قابلیت های “عبارات منظم گسترده” را باز می کند. عبارات منظم و گسترده شامل همه متا کاراکترهای اصلی و متا کاراکترهای اضافی برای بیان تطابقات پیچیده تر می شود.

گروه بندی

یکی از مفیدترین توانایی هایی که عبارات معمولی گسترده باز می کند ، توانایی گروه بندی عبارات برای دستکاری یا ارجاع به عنوان یک واحد است.

برای گروه بندی عبارات با هم ، آنها را در پرانتز بپیچید. اگر می خواهید از پرانتز بدون استفاده از عبارات معمولی گسترده استفاده کنید ، می توانید با فعال کردن این قابلیت ، آنها را با پشت سر هم فرار کنید. این بدان معناست که سه عبارت زیر از نظر عملکرد معادل هستند:

grep “\(grouping\)” file.txt
grep -E “(grouping)” file.txt
egrep “(grouping)” file.txt

جایگزینی

مشابه این که چگونه عبارات براکت می توانند گزینه های مختلف ممکن را برای مطابقت با نویسه مشخص کنند ، تناوب به شما امکان می دهد مطابقت های جایگزین برای رشته ها یا مجموعه های بیان را مشخص کنید.

برای نشان دادن تناوب ، از کاراکتر pipe | استفاده کنید. اینها اغلب در گروه بندی پرانتز استفاده می شوند تا مشخص شود که یکی از دو یا چند احتمال باید مطابقت داشته باشد.

موارد زیر یا GPL یا General Public License در متن پیدا می کند:

grep -E “(GPL|General Public License)” GPL-3

خروجی به این شکل است:

Output
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
GNU General Public License for most of our software; it applies also to
price.  Our General Public Licenses are designed to make sure that you
  Developers that use the GNU GPL protect your rights with two steps:
  For the developers' and authors' protection, the GPL clearly explains
authors' sake, the GPL requires that modified versions be marked as
have designed this version of the GPL to prohibit the practice for those
...
...

Alternation می تواند بین بیش از دو گزینه با افزودن گزینه های اضافی در گروه انتخاب جدا شده با نویسه های اضافی  (|) را انتخاب کند.

کمیسازها(Quantifiers)

مانند * متا کاراکتری که با کاراکتر یا نویسه قبلی صفر یا بیشتر مطابقت داشت ، متا کاراکترهای دیگری نیز در عبارات منظم گسترده وجود دارد که تعداد وقایع را مشخص می کند.

برای مطابقت یک کاراکتر صفر یا یک بار ، می توانید از؟ شخصیت. این باعث می شود که شخصیت یا مجموعه شخصیت هایی که قبل از اختیاری آمده اند ، در اصل باشد.

موارد زیر با قرار دادن کپی در یک گروه اختیاری با حق چاپ و حق مطابقت دارد:

grep -E “(copy)?right” GPL-3

این خروجی را دریافت خواهید کرد:

Output
 Copyright (C) 2007 Free Software Foundation, Inc.
  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
know their rights.
  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
  "Copyright" also means copyright-like laws that apply to other kinds of
...

کاراکتر + یک یا چند بار با یک عبارت مطابقت دارد. این تقریباً شبیه کاراکتر * است ، اما با کاراکتر + ، عبارت باید حداقل یک بار مطابقت داشته باشد.

عبارت زیر با رشته رایگان به علاوه یک یا چند کاراکتر که کاراکتر فضای سفید نیستند مطابقت دارد:

grep -E “free[^[:space:]]+” GPL-3

این خروجی را مشاهده خواهید کرد:

Output
  The GNU General Public License is a free, copyleft license for
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
  When we speak of free software, we are referring to freedom, not
have the freedom to distribute copies of free software (and charge for
you modify it: responsibilities to respect the freedom of others.
freedomss that you received.  You must make sure that they, too, receive
protecting users' freedom to change the software.  The systematic
of the GPL, as needed to protect the freedom of users.
patents cannot be used to render the program non-free.

تعیین تکرار تطبیق

برای تعیین تعداد دفعات تکرار یک مسابقه ، از کاراکترهای پرانتز ({و}) استفاده کنید. این کاراکترها به شما اجازه می دهند تا تعداد دقیق ، محدوده یا محدوده بالا یا پایین را به تعداد دفعات مطابقت یک عبارت مشخص کنید.

از عبارت زیر برای پیدا کردن همه خطوط موجود در فایل GPL-3 که حاوی سه حروف صدادار هستند استفاده کنید:

grep -E “[AEIOUaeiou]{3}” GPL-3

هر سطر برگشتی دارای یک کلمه با سه مصوت است:

Output
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
receive it, in any medium, provided that you conspicuously and
give under the previous paragraph, plus a right to possession of the
covered work so as to satisfy simultaneously your obligations under this

برای مطابقت با کلماتی که بین 16 تا 20 نویسه دارند ، از عبارت زیر استفاده کنید:

grep -E “[[:alpha:]]{16,20}” GPL-3

در اینجا خروجی این فرمان است:

Output
    certain responsibilities if you distribute copies of the software, or if
    you modify it: responsibilities to respect the freedom of others.
        c) Prohibiting misrepresentation of the origin of that material, or

فقط خطوط حاوی کلمات در این طول نمایش داده می شود.

نتیجه

grep در یافتن الگوهای درون فایلها یا در سلسله مراتب سیستم فایل مفید است ، بنابراین ارزش وقت گذاشتن برای راحت شدن با گزینه ها و نحو آن را دارد.

عبارات معمولی حتی همه کاره تر هستند و می توانند در بسیاری از برنامه های محبوب استفاده شوند. به عنوان مثال ، بسیاری از ویرایشگران متن عبارات معمولی را برای جستجو و جایگزینی متن پیاده سازی می کنند.

علاوه بر این ، اکثر زبان های برنامه نویسی مدرن از عبارات معمولی برای انجام رویه های خاصی از داده ها استفاده می کنند. هنگامی که عبارات معمولی را درک کردید ، می توانید این دانش را به بسیاری از کارهای رایج مرتبط با رایانه ، از انجام جستجوهای پیشرفته در ویرایشگر متن تا تأیید ورودی کاربر منتقل کنید.


https://vpsgol.net/product/vps-germany/

https://vpsgol.net/product/vps-usa/

https://vpsgol.net/product/vps-france/

https://vpsgol.net/product/vps-canada/

https://vpsgol.net/product/vps-poland/

https://vpsgol.net/product/vps-netherlands/

https://vpsgol.net/product/vps-england/