اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

جستجوی چندین پترن word / string با استفاده از دستور grep در لینوکس

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    جستجوی چندین پترن word / string با استفاده از دستور grep در لینوکس

    من چطور میتونم چندین کلمه یا string را با استفاده از دستور grep فیلتر کنم؟ برای مثال من قصد دارم کلمات word1 ،word2 ،word3 را از داخل یک فایل مشخصی فیلتر کنم. بریم سراغ جواب. دستور grep از پترن های regular expression پشتیبانی میکند و برای سرچ کردن چندین کلمه به صورت زیر عمل میکنیم.
    جستجوی متن کلمه عبارت با استفاده از دستور grep در لینوکس



    همچنین توصیه میشود مطالعه کنید :

    دستور grep در لینوکس به همراه 12 مثال عملی

    11 دستور پیشرفته grep در Linux

    تفاوت بین Egrep - Grep و Fgrep در لینوکس چیست؟




    چطور میتونم چندین patern را با استفاده از دستور grep فیلتر کرد؟

    1 - استفاده از single quote در پترن مورد استفاده :
    کد PHP:
    grep 'pattern*' file1 file2 
    2 - استفاده از regular expression ها به همراه دستور grep :
    کد PHP:
    egrep 'pattern1|pattern2' *.py 
    3 - برای سیستم عامل های unix قدیمی هم از این syntax استفاده کنید :
    کد PHP:
    grep -e pattern1 -e pattern2 *.pl 


    دیگر syntax ها به صورت زیر میباشد :
    کد PHP:
    grep 'word1\|word2\|word3' /path/to/file 
    برای جستجوی تمام فایل های متنی با استفاده از دستور grep به صورت زیر عمل میکنیم :
    کد PHP:
    grep 'word*' *.txt 
    برای جستجوی تمام فایل های پایتون با استفاده از دستور grep به این صورت عمل میکنیم :
    کد PHP:
    grep 'wordA*'\''wordB' *.py
    grep -E '
    word1|word2' *.doc
    grep -e string1 -e string2 *.pl
    egrep "word1|word2" *.c 

    مثالها

    در این مثال، کلمه های warning - error - critical را از مسیر /var/log/messages که لاگ های سیستم در آنجا ذخیره میشوند را جستجو میکنیم :
    کد PHP:
    grep 'warning\|error\|critical' /var/log/messages 
    برای جستجوی فقط کلمه های match شده از آپشن w استفاده کنید :
    کد PHP:
    grep -'warning\|error\|critical' /var/log/messages 
    شما میتوانید syntax بالا را برای جستجوی سه کلمه نادیده بگیرید :
    کد PHP:
    egrep -'warning|error|critical' /var/log/messages 
    یا

    کد PHP:
    grep -'warning|error|critical' /var/log/messages 
    به شما پيشنهاد ميكنيم كه آپشن -i (صرفنظر از حروف بزرگ و كوچك) و --color را همانند مثال زير به دستور پاس دهيد :
    کد PHP:
    egrep -wi --color 'warning|error|critical' /var/log/messages 
    نمونه خروجی :
    کد PHP:
    [Jan 26 08:17:59WARNING[6023][C-00001843res_odbc.cConnection is down attempting to reconnect...
    [
    Jan 26 11:10:48WARNING[19093][C-0000185fchan_sip.cPurely numeric hostname (550), and not a peer--rejecting!
    [
    Jan 26 11:10:48WARNING[19093][C-0000185fapp_dial.cUnable to create channel of type 'sip' (cause 20 Subscriber absent)
    [
    Jan 28 00:07:19WARNING[24239][C-00001885res_odbc.cSetConnectAttr (Txn isolationreturned an errorHY000: [MySQL][ODBC 5.1 Driver]MySQL server has gone away
    [Jan 28 00:07:19WARNING[24239][C-00001885res_odbc.cSQL Execute returned an error -108S01: [MySQL][ODBC 5.1 Driver][mysqld-5.5.53]MySQL server has gone away (65)
    [
    Jan 28 00:07:19WARNING[24239][C-00001885res_odbc.cSQL Execute error -1Verifying connection to asterisk [asterisk]...
    [
    Jan 28 00:07:19WARNING[24239][C-00001885res_odbc.cConnection is down attempting to reconnect...
    [
    Jan 28 07:41:10WARNING[2026chan_sip.cRetransmission timeout reached on transmission 6c504dda-ab3e007a-d8bc35c6-1a91757a@172.16.1.101 for seqno 102 (Critical Response) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
    [Jan 28 09:01:04WARNING[32285][C-000018b6chan_sip.cPurely numeric hostname (200), and not a peer--rejecting!
    [
    Jan 28 09:01:04WARNING[32285][C-000018b6app_dial.cUnable to create channel of type 'sip' (cause 20 Subscriber absent
    برای جستجوی تمام فایل هایی با پسوند .conf در مسیر /ete/ از دستور زیر استفاده کنید :
    کد PHP:
    # egrep -wi --color 'foo|bar' /etc/*.conf 
    برای جستجو دایرکتوریها با تمام محتویات و زیر دایرکتوریهاش به صورت زیر عمل میکنیم :
    کد PHP:
    # egrep -Rwi --color 'foo|bar' /etc/ 

    همچنین توصیه میشود مطالعه کنید :

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

    10 دستور مفید برای Chaining Operators در لینوکس


    موفق باشید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-22-2021, 02:01 PM.

درباره انجمن منطقه لینوکسی ها

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

شبکه های اجتماعی
در حال انجام ...
X