ឧទាហរណ៍ការប្រើប្រាស់របស់ពាក្យបញ្ជា grep លីនុច

សេចក្តីណែនាំ

ពាក្យបញ្ជា grep លីនុចត្រូវបានប្រើជាវិធីសាស្ត្រសម្រាប់ច្រោះបញ្ចូល។

GREP តំណាងឱ្យម៉ាស៊ីនបោះពុម្ភផ្សាយទូទៅរបស់សកលលោកហើយដូច្នេះដើម្បីប្រើវាឱ្យមានប្រសិទ្ធភាពអ្នកគួរតែមានចំនេះដឹងខ្លះអំពីកន្សោមធម្មតា។

នៅក្នុងអត្ថបទនេះខ្ញុំនឹងបង្ហាញអ្នកនូវឧទាហរណ៍មួយចំនួនដែលនឹងជួយអ្នកឱ្យយល់ពីពាក្យបញ្ជា grep ។

01 នៃ 09

តើធ្វើដូចម្តេចដើម្បីស្វែងរកខ្សែអក្សរក្នុងឯកសារមួយដោយប្រើប្រាស់ GREP

ពាក្យបញ្ជា grep លីនុច។

ស្រមៃថាអ្នកមានឯកសារអត្ថបទមួយដែលមានឈ្មោះថាសៀវភៅដែលមានចំណងជើងសៀវភៅកុមារដូចតទៅ:

ដើម្បីរកសៀវភៅទាំងអស់ដែលមានពាក្យ "The" ក្នុងចំណងជើងអ្នកនឹងប្រើវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep សៀវភៅ

លទ្ធផលដូចខាងក្រោមនឹងត្រូវបានត្រឡប់មកវិញ:

ក្នុងករណីនីមួយៗពាក្យ "The" នឹងត្រូវបានបន្លិច។

ចំណាំថាការស្វែងរកគឺប្រកាន់អក្សរតូចធំដូច្នេះប្រសិនបើចំណងជើងមួយមាន "A" ជំនួស "The" ពេលនោះវានឹងមិនត្រូវបានត្រឡប់ទេ។

ដើម្បីមិនអើពើករណីអ្នកអាចបន្ថែមចំណុចខ្សាច់ដូចខាងក្រោម:

grep សៀវភៅ - មិនល្អ - ករណី

អ្នកក៏អាចប្រើប្ដូរ -i ដូចខាងក្រោម:

grep -i សៀវភៅ

02 នៃ 09

ស្វែងរកខ្សែអក្សរនៅក្នុងឯកសារដោយប្រើតួអក្សរជំនួស

ពាក្យបញ្ជា grep គឺមានអនុភាពខ្លាំងណាស់។ អ្នកអាចប្រើបច្ចេកទេសផ្គូផ្គងលំនាំច្រើនដើម្បីត្រងលទ្ធផល។

នៅក្នុងឧទាហរណ៍នេះខ្ញុំនឹងបង្ហាញអ្នកអំពីរបៀបស្វែងរកខ្សែអក្សរនៅក្នុងឯកសារដោយប្រើ អក្សរជំនួស

ស្រមៃថាអ្នកមានឯកសារមួយដែលមានឈ្មោះថាកន្លែងដែលមានឈ្មោះទីកន្លែងស្កុតឡេនដូចតទៅ:

aberdeen

aberystwyth

aberlour

inverurie

inverness

newburgh

ក្ដាន់ថ្មី

galloway ថ្មី

glasgow

edinburgh

ប្រសិនបើអ្នកចង់ស្វែងរកទីកន្លែងទាំងអស់ដោយប្រើឈ្មោះប្រើឈ្មោះប្រើវាក្យសម្ពន្ធខាងក្រោម:

grep inver * កន្លែង

សញ្ញាផ្កាយ (*) មានចំនួន 0 ឬច្រើន។ ដូច្នេះប្រសិនបើអ្នកមានកន្លែងដែលហៅថា inverness ឬកន្លែងដែលហៅថា inverness មួយបន្ទាប់មកទាំងពីរនឹងត្រូវបានត្រឡប់មកវិញ។

តួអក្សរជំនួសមួយទៀតដែលអ្នកអាចប្រើគឺកំឡុងពេល (។ ) ។ អ្នកអាចប្រើវាដើម្បីផ្គូផ្គងតួអក្សរមួយ។

grep inver.r កន្លែង

ពាក្យបញ្ជាខាងលើនឹងរកឃើញកន្លែងដែលហៅថា inverurie និង inverary ប៉ុន្តែមិនអាចរកឃើញ invereerie ព្រោះវាអាចមានតែតួអក្សរជំនួសមួយរវាងពីរ R ដូចដែលបានចង្អុលបង្ហាញដោយរយៈពេលតែមួយ។

តួអក្សរជំនួសមានប្រយោជន៍ប៉ុន្តែវាអាចបង្កបញ្ហាប្រសិនបើអ្នកមានផ្នែកមួយនៃអត្ថបទដែលអ្នកកំពុងស្វែងរក។

ឧទាហរណ៍មើលទៅបញ្ជីឈ្មោះដែននេះ

ដើម្បីស្វែងរក about.com ទាំងអស់អ្នកគ្រាន់តែអាចស្វែងរកដោយប្រើវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep * អំពី * ឈ្មោះដែន

ពាក្យបញ្ជាខាងលើនឹងធ្លាក់ចុះបើបញ្ជីមានឈ្មោះដូចខាងក្រោម:

ដូច្នេះអ្នកអាចព្យាយាមវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep * about.com ឈ្មោះដែន

វានឹងដំណើរការល្អលុះត្រាតែមានដែនដែលមានឈ្មោះដូចខាងក្រោម:

aboutycom.com

ដើម្បីស្វែងរកពិតអំពីពាក្យ about.com អ្នកនឹងត្រូវការគេចផុតពីចំណុចដូចខាងក្រោម:

grep * អំពីឈ្មោះដែន .com

តួអក្សរជំនួសចុងក្រោយដើម្បីបង្ហាញអ្នកគឺជាសញ្ញាសួរដែលតំណាងឱ្យលេខសូន្យឬតួអក្សរមួយ។

ឧទាហរណ៍:

greetings

ពាក្យបញ្ជាខាងលើនឹងត្រឡប់មកវិញ aberdeen aberystwyth ឬសូម្បីតែ berwick ។

03 នៃ 09

ស្វែងរកខ្សែអក្សរនៅដើមដំបូងនិងបញ្ចប់នៃបន្ទាត់ដោយប្រើ grep

សញ្ញា (^) និងនិមិត្តសញ្ញាដុល្លារ ($) អនុញ្ញាតឱ្យអ្នកស្វែងរកគំរូនៅដើមនិងចុងបន្ទាត់។

ស្រមៃថាអ្នកមានឯកសារដែលមានឈ្មោះថាបាល់ទាត់ជាមួយឈ្មោះក្រុមដូចខាងក្រោម:

ប្រសិនបើអ្នកចង់ស្វែងរកក្រុមទាំងអស់ដែលចាប់ផ្តើមជាមួយក្រុម Manchester អ្នកនឹងប្រើវាក្យសម្ពន្ធខាងក្រោម:

ក្រុម Manchester ក្រុមការងារ

ពាក្យបញ្ជាខាងលើនឹងត្រលប់ទៅ Manchester City និង Manchester United ប៉ុន្តែមិនមែនជា FC របស់ Manchester Manchester ឡើយ។

ជាជម្រើសអ្នកអាចរកឃើញក្រុមទាំងអស់ដែលបញ្ចប់ដោយ United តាមរយៈវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep ក្រុម United ដុល្លារ

ពាក្យបញ្ជាខាងលើនឹងត្រលប់ទៅ Manchester United និង Newcastle United ប៉ុន្តែមិនមែនជា FC របស់ Manchester Manchester ឡើយ។

04 នៃ 09

រាប់ចំនួនផ្គូផ្គងដោយប្រើ grep

ប្រសិនបើអ្នកមិនចង់ត្រឡប់បន្ទាត់ពិតប្រាកដដែលផ្គូផ្គងលំនាំដោយប្រើ grep ទេប៉ុន្តែអ្នកគ្រាន់តែចង់ដឹងថាតើមានមនុស្សប៉ុន្មានអ្នកអាចប្រើវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep -c សំណុំហ្វិចសមាសធាតុលំនាំដើម

ប្រសិនបើគំរូត្រូវបានផ្គូផ្គងពីរដងបន្ទាប់មកលេខ 2 នឹងត្រូវបានត្រឡប់។

05 នៃ 09

ស្វែងរកទាំងអស់លក្ខខណ្ឌដែលមិនត្រូវគ្នាដោយប្រើ grep

ស្រមៃថាអ្នកមានបញ្ជីឈ្មោះទីកន្លែងជាមួយប្រទេសដែលមានរាយនាមដូចខាងក្រោម:

អ្នកប្រហែលជាបានកត់សម្គាល់ថាច្រាំងកូលវីយមិនមានប្រទេសណាមួយជាប់ពាក់ព័ន្ធនឹងវាទេ។

ដើម្បីស្វែងរកទីកន្លែងទាំងអស់ជាមួយប្រទេសមួយអ្នកអាចប្រើវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep land $ places

លទ្ធផលត្រឡប់នឹងជាកន្លែងទាំងអស់លើកលែងតែឆកសមុទ្រ colwyn ។

នេះជាក់ស្តែងធ្វើការតែកន្លែងដែលចប់នៅលើដី (វិទ្យាសាស្រ្តស្ទើរតែមិនមាន) ។

អ្នកអាចបម្លែងជម្រើសដោយប្រើវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep -v land $ places

នេះនឹងរកឃើញកន្លែងទាំងអស់ដែលមិនបានបញ្ចប់ជាមួយនឹងដីធ្លី។

06 នៃ 09

របៀបរកបន្ទាត់ទទេក្នុងឯកសារដោយប្រើ grep

ស្រមៃថាអ្នកមានឯកសារបញ្ចូលដែលត្រូវបានប្រើដោយកម្មវិធីភាគីទីបីដែលឈប់អានឯកសារនៅពេលដែលវារកឃើញបន្ទាត់ទទេដូចខាងក្រោម:

នៅពេលដែលកម្មវិធីទទួលបានបន្ទាត់បន្ទាប់ពី liverpool វានឹងបញ្ឈប់ការអានន័យកុយរវែលឆកថលត្រូវបានខកខានទាំងស្រុង។

អ្នកអាចប្រើ grep ដើម្បីស្វែងរកបន្ទាត់ទទេជាមួយវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep ^ $ places

ជាអកុសលវាមិនមានប្រយោជន៍ទេព្រោះវាគ្រាន់តែត្រឡប់បន្ទាត់ទទេ។

អ្នកប្រាកដជាអាចរាប់ចំនួនបន្ទាត់ទទេដែលជាមូលប្បទានប័ត្រដើម្បីពិនិត្យមើលថាតើឯកសារមានសុពលភាពដូចតទៅ:

grep -c ^ $ places

ទោះជាយ៉ាងណាក៏ដោយវានឹងមានប្រយោជន៍ច្រើនណាស់ដើម្បីដឹងពីលេខបន្ទាត់ដែលមានបន្ទាត់ទំនេរដើម្បីឱ្យអ្នកអាចជំនួសពួកគេបាន។ អ្នកអាចធ្វើវាជាមួយពាក្យបញ្ជាខាងក្រោម:

grep -n ^ $ places

07 នៃ 09

វិធីស្វែងរកខ្សែអក្សរនៃអក្សរធំឬអក្សរតូចដោយប្រើ grep

ដោយប្រើ grep អ្នកអាចកំណត់បន្ទាត់ណាមួយនៅក្នុងឯកសារដែលមានអក្សរធំដោយប្រើវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep '[AZ]' ឈ្មោះឯកសារ

ដង្កៀប [] [] អនុញ្ញាតឱ្យអ្នកកំណត់ជួរនៃតួអក្សរ។ នៅក្នុងឧទាហរណ៍ខាងលើវាផ្គូផ្គងតួអក្សរណាមួយដែលស្ថិតនៅចន្លោះ A និង Z ។

ដូច្នេះដើម្បីផ្គូផ្គងតួអក្សរតូចអ្នកអាចប្រើវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep '[az]' ឈ្មោះឯកសារ

បើអ្នកចង់ផ្គូផ្គងអក្សរតែមិនមែនលេខឬនិមិត្តសញ្ញាផ្សេងទៀតអ្នកអាចប្រើវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep '[a-zA-Z]' ឈ្មោះឯកសារ

អ្នកអាចធ្វើដូចគ្នាជាមួយនឹងលេខដូចខាងក្រោម:

grep '[0-9]' ឈ្មោះឯកសារ

08 នៃ 09

កំពុងរកមើលលំនាំដដែលៗដោយប្រើ grep

អ្នកអាចប្រើដង្កៀបរង្វិលជុំ {} ដើម្បីស្វែងរកលំនាំម្តងហើយម្តងទៀត។

ស្រមៃថាអ្នកមានឯកសារដែលមានលេខទូរស័ព្ទដូចខាងក្រោម:

អ្នកដឹងថាផ្នែកដំបូងនៃលេខត្រូវការខ្ទង់ទី 3 ហើយអ្នកចង់រកបន្ទាត់ដែលមិនត្រូវគ្នានឹងលំនាំនេះ។

ពីឧទាហរណ៍មុនអ្នកដឹងថា [0-9] ត្រឡប់លេខទាំងអស់ក្នុងឯកសារមួយ។

ក្នុងករណីនេះយើងចង់អោយបន្ទាត់ដែលចាប់ផ្តើមដោយលេខបីដែលបន្តដោយសហសញ្ញា (-) ។ អ្នកអាចធ្វើវាជាមួយវាក្យសម្ព័ន្ធដូចខាងក្រោម:

grep "^ [0-9] [0-9] [0-9] -" លេខ

ដូចដែលយើងបានដឹងពីឧទាហរណ៍មុនការ៉ាត់ (^) មានន័យថាបន្ទាត់ត្រូវចាប់ផ្តើមដោយលំនាំដូចខាងក្រោម។

[0-9] នឹងស្វែងរកលេខណាមួយរវាង 0 និង 9 ។ ក្នុងករណីនេះត្រូវបានរួមបញ្ចូល 3 ដងវាផ្គូផ្គងលេខ 3 ។ នៅចុងបញ្ចប់មានសហសញ្ញាមួយដើម្បីបញ្ជាក់ថាសហសញ្ញាត្រូវតែជោគជ័យលើលេខទាំងបី។

ដោយប្រើតង្កៀបអង្កាញ់អ្នកអាចធ្វើការស្វែងរកតូចជាងមុនដូចខាងក្រោម:

grep "^ [0-9] \ {3 \} -" លេខ

សញ្ញាតូចៗរត់ពី {តង្កៀបដូច្នេះវាធ្វើការជាផ្នែកមួយនៃកន្សោមធម្មតាប៉ុន្តែក្នុងន័យខ្លឹមសារដែលវានិយាយគឺ 0-9] {3} ដែលមានន័យថាលេខណាមួយរវាង 0 និង 9 បីដង។

តង្កៀបអង្កាញ់ក៏អាចត្រូវបានប្រើដូចខាងក្រោមដែរ:

{5,10}

{5,}

{5,10} មានន័យថាតួអង្គដែលកំពុងស្វែងរកត្រូវបានធ្វើម្តងទៀតយ៉ាងហោចណាស់ 5 ដងប៉ុន្តែមិនលើសពី 10 ហើយ {5,} មានន័យថាតួអក្សរត្រូវធ្វើឡើងវិញយ៉ាងហោចណាស់ 5 ដងប៉ុន្តែវាអាចច្រើនជាងនេះ។

09 នៃ 09

ប្រើលទ្ធផលពីពាក្យបញ្ជាផ្សេងទៀតដោយប្រើ grep

រហូតមកដល់ពេលនេះយើងបានមើលការផ្គូផ្គងលំនាំនៅក្នុងឯកសារនីមួយៗប៉ុន្តែ grep អាចប្រើលទ្ធផលពីពាក្យបញ្ជាផ្សេងទៀតជាការបញ្ចូលសម្រាប់ការផ្គូផ្គងលំនាំ។

ឧទាហរណ៏ដ៏អស្ចារ្យមួយនេះត្រូវបានប្រើពាក្យបញ្ជា ps ដែលរាយការដំណើរការសកម្ម។

ឧទាហរណ៍រត់ពាក្យបញ្ជាដូចខាងក្រោម:

ps -ef

ដំណើរការដំណើរការទាំងអស់នៅលើប្រព័ន្ធរបស់អ្នកនឹងត្រូវបានបង្ហាញ។

អ្នកអាចប្រើ grep ដើម្បីស្វែងរកដំណើរការរត់ពិសេសដូចខាងក្រោម:

ps -ef | grep firefox

សង្ខេប

ពាក្យបញ្ជា grep គឺជាពាក្យបញ្ជាលីនុចមូលដ្ឋានហើយវាជាការរៀនសូត្រដ៏មានតម្លៃមួយព្រោះវានឹងធ្វើឱ្យជីវិតរបស់អ្នកកាន់តែងាយស្រួលនៅពេលស្វែងរកឯកសារនិងដំណើរការនៅពេលប្រើស្ថានីយ។