មេរៀនទី៨: ប្រើ Command បញ្ជា grep

មេរៀនទី៨: សារ:ប្រយោជន៍ប្រើប្រាស់ Command បញ្ជា grep

ពាក្បបញ្ជានេះ វាមានសារៈប្រយោជន៍ ដល់អ្នកជំនាញ ក្នុងការប្រើប្រាស់ លីនុច ។
ជាដំបូង យើងបង្កើត ហ្វាល demo_file ដើម្បីប្រើប្រាស់ ជាមួយ ពាក្យបញ្ជា grep ៖
a$ cat demo_file
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
Two lines above this line is empty.
And this is the last line.

. ស្វែងរក ពាក្យ (string) នៅក្នុង ហ្វាលឯក (single file)

មូលដ្ឋានគ្រឹះ នៃការប្រើពាក្យបញ្ជា grep នេះ គឺ ដើម្បីស្វែងរក ពាក្យ (string) ណាមួយ នៅក្នុង ហ្វាល ដូចខាងក្រោម​នេះ ៖

Syntax:
grep “literal_string” filename

$ grep “this” demo_file
this line is the 1st lower case line in this file.
Two lines above this line is empty.

. ត្រួតពិនិត្យ ពាក្យ (string) នៅក្នុងពហុហ្វាល

Syntax:
grep “string” FILE_PATTERN

នេះក៍ជា មូលដ្ឋានគ្រឹះ មួយដែរ នៃការប្រើប្រាស់ ពាក្យបញ្ជានេះ ។ ក្នុងឧទាហរណ៍នេះ យើងនិងថតចំណង ហ្វាល demo_file ទៅកាន់ demo_file1 បន្ទាប់មក ប្រើ grep ដើម្បីស្វែងរក ពាក្យ នៅក្នុង ពហុហ្វាល ដូចខាងក្រោម ៖

$ cp demo_file demo_file1
$ grep “this” demo_*
demo_file:this line is the 1st lower case line in this file.
demo_file:Two lines above this line is empty.
demo_file:And this is the last line.
demo_file1:this line is the 1st lower case line in this file.
demo_file1:Two lines above this line is empty.
demo_file1:And this is the last line.

. ប្រើពាក្យបញ្ជាជាមួយ ជំរើស grep -i

Syntax:
grep -i “string” FILE

ជាមួយនិង ជំរើសនេះ យើងអាចស្វែងរក string/pattern ។ ដូច្នេះ វាអាចស្វែងរក ពាក្យ ដូចជា “the”, “THE” ហើយនិង “The” ដូចខាងក្រោម ៖

$ grep -i “the” demo_file
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
And this is the last line.

. ស្វែងរកកន្សោមនៃ ពាក្យ នៅក្នុង ហ្វាល

Syntax:
grep “REGEX” filename

ជាមួយជំរើសនេះ វាត្រូវបានគេ ប្រើប្រាស់ច្រើន ក្នុងការស្វែងរក កន្សោមនៃពាក្យ នៅក្នុងឧទាហរណ៍ខាងក្រោម នេះ និងស្វែងរក កន្សោមនៃពាក្យចាប់ផ្ដើមពី ពាក្យ “lines” និង​ បញ្ចប់ជាមួយពាក្យ “empty”​ ដែលមាននៅក្នុង ហ្វាល demo_file ៖

$ grep “lines.*empty” demo_file
Two lines above this line is empty.

. ត្រួតពិនិត្យពាក្យពេញ ឬក៍ not for sub-strings ដោយប្រើ grep -w
ក្នុងឧទាហរណ៍ ខាងក្រោមនេះ និងបង្ហាញពីការស្វែងរក ពាក្យ “is” ដោយប្រើពាក្យបញ្ជា grep ។ ពេលដែល អ្នក ស្វែងរក ពាក្យ “is” ដោយគ្មានជំរើសអ្វី វានិងបង្ហាញ “is” “his”, “this” វាមានន័យថា substring គឺ “is” ៖

$ grep -i “is” demo_file
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
Two lines above this line is empty.
And this is the last line.

ជាមួយ ឧទាហរណ៍ បន្តទៀតនេះ យើងនិងប្រើជំរើស grep -iw ដើម្បីស្វែងរកពាក្យ “is” ៖

$ grep -iw “is” demo_file
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
Two lines above this line is empty.
And this is the last line.

៦. បង្ហាញបន្ទាត់before/after/around​ ដោយប្រើជំរើសgrep -A, -B and -C
អ្នកប្រើ grep ជាមួយហ្វាលដែលមានទំហំធំវានិងមានសារៈប្រយោជន៍ដើម្បីបង្ហាញបន្ទាត់ មួយចំនួន នៅខាងក្រោយ។ ដូច្នេះអ្នកអាចប្រើgrep មិនត្រឹមតែបង្ហាញពីបន្ទាត់ដែលបានស្វែងរកប៉ុណ្ណោះទេ តែវាអាចបង្ហាញពីបន្ទាត់ដែលនួវជុំវិញដូចជា the lines after/before/ around ។
ឧទាហរណ៍ខាងក្រោមនេះនិងបង្កើតហ្វាលឈ្មោះdemo_text ៖

$ cat demo_text
4. Vim Word Navigation
You may want to do several navigation in relation to the words, such as:
* e – go to the end of the current word.
* E – go to the end of the current WORD.
* b – go to the previous (before) word.
* B – go to the previous (before) WORD.
* w – go to the next word.
* W – go to the next WORD.
WORD – WORD consists of a sequence of non-blank characters, separated with white space.
word – word consists of a sequence of letters, digits and underscores.
Example to show the difference between WORD and word
* 192.168.1.1 – single WORD
* 192.168.1.1 – seven words.

.១បង្ហាញN បន្ទាត់បន្ទាប់ពីរកឃើញពាក្យN lines after match
ប្រើជំរើស -A ដើម្បីបង្ហាញN បន្ទាត់៖

Syntax:
grep -A <N> “string” FILENAME

ជាឧទាហរណ៍បង្ហាញ៣បន្ទាត់បន្ទាប់ពីរកឃើញពាក្យ៖

$ grep -A 3 -i “example” demo_text
Example to show the difference between WORD and word
* 192.168.1.1 – single WORD
* 192.168.1.1 – seven words.

.២បង្ហាញN បន្ទាត់មុនពេលដែលរកឃើញពាក្យ N lines before match
ប្រើជំរើស -B ដើម្បីបង្ហាញN បន្ទាត់៖

Syntax:
grep -B <N> “string” FILENAME

$ grep -B 2 “single WORD” demo_text
Example to show the difference between WORD and word

* 192.168.1.1 – single WORD

.៣បង្ហាញN បន្ទាត់ក្នុងពេលដែលកំពុងរកពាក្យ N lines around match
ប្រើជំរើស -C ដើម្បីបង្ហាញពីបន្ទាត់ទាំងbefore & after ៖

$ grep -C 2 “Example” demo_text
word – word consists of a sequence of letters, digits and underscores.

Example to show the difference between WORD and word

* 192.168.1.1 – single WORD

. ស្វែងរកដោយប្រើGREP_OPTIONS
ប្រើgrep ដើម្បីបង្ហាញគ្រប់បន្ទាត់ពីហ្វាលជាមួយ pattern / string ។បើសិនជាអ្នកចង់ធ្វើការកត់សំគាល់
ផ្នែកណាមួយនៅគ្រប់បន្ទាត់ដូច្នេះយើងអាចជំរើសនេះ។

$ export GREP_OPTIONS=’–color=auto’ GREP_COLOR=’100;8′

$ grep this demo_file
this line is the 1st lower case line in this file.
Two lines above this line is empty.
And this is the last line.

. ប្រើជំរើសgrep -r ដើម្បីស្វែងរកគ្រប់ហ្វាល
ពេលដែលអ្នកចង់ស្វែងរកគ្រប់ហ្វាល​ ទាំងអស់ជាមួយនិងកន្សោមហ្វាលដែលកំពុងស្ថិតនៅនិងកន្សោមហ្វាលរង
យើងត្រូវប្រើជំរើស -r ។ឧទាហរណ៍ខាងក្រោមនេះនិងស្វែងរកពាក្យ“ramesh” ពី​ គ្រប់ហ្វាលដែលកំពុងស្ថិតនៅនិងកន្សោមហ្វាលរង

$ grep -r “ramesh” *

. ប្រើជំរើសgrep -v
ប្រើជំរើសនេះដើម្បីបង្ហាញបន្ទាត់ណាដែលមិនមានstring/pattern​ ដែលបានកំណត់។

$ grep -v “go” demo_text
4. Vim Word Navigation

You may want to do several navigation in relation to the words, such as:

WORD – WORD consists of a sequence of non-blank characters, separated with white space.
word – word consists of a sequence of letters, digits and underscores.

Example to show the difference between WORD and word

* 192.168.1.1 – single WORD
* 192.168.1.1 – seven words.

១០. បង្ហាញបន្ទាត់ជាមួយstring/pattern ដែលរកមិនឃើញ

Syntax:
grep -v -e “pattern” -e “pattern”

$ cat test-file.txt
a
b
c
d
$ grep -v -e “a” -e “b” -e “c” test-file.txt
d

១១. ប្រើជំរើស grep -c ដើម្បីរាប់ចំនួនបន្ទាត់នៃការស្វែងរកពាក្យ

ពេលដែលអ្នកចង់ រាប់ចំនួនបន្ទាត់ នៃការស្វែងរក ពាក្យ ឬក៍ឃ្លា យើងអាចប្រើជំរើស -c ដូចខាងក្រោម ៖

Syntax: grep -c “pattern” filename
$ grep -c “go” demo_text 6

ឬក៍យើងអាច រាប់ចំនួនបន្ទាត់ នៃឃ្លានិមួយៗ ៖

$ grep -c this demo_file 3

ឬក៍យើងអាច រាប់ចំនួនបន្ទាត់ ដែលមិនមែនជារបស់ឃ្លានោះ ៖

$ grep -v -c this demo_file 4

១២. ប្រើជំរើស grep -c ដើម្បីបង្ហាញត្រឹមតែឈ្មោះនៃពាក្យ

$ grep -l this demo_* demo_file demo_file1

១៣. បង្ហាញត្រឹមតែពាក្យ

ដោយប្រើជំរើស grep -o ដើម្បីស្វែងរក ៖

$ grep -o “is.*line” demo_file
is line is the 1st lower case line is line is is the last line

១៤. បង្ហាញត្រឹមតែទីតាំងនៃបន្ទាត់

ដោយប្រើជំរើស grep -o -p ដើម្បីស្វែងរក ៖

Syntax: grep -o -b “pattern” file
$ cat temp-file.txt 12345 12345
$ grep -o -b “3” temp-file.txt 2:3 8:3

១៥. បង្ហាញត្រឹមតែចំនួនបន្ទាត់

ដោយប្រើជំរើស grep -n ដើម្បីស្វែងរក ៖

$ grep -n “go” demo_text
5: * e – go to the end of the current word.
6: * E – go to the end of the current WORD.
7: * b – go to the previous (before) word.
8: * B – go to the previous (before) WORD.
9: * w – go to the next word.
10: * W – go to the next WORD.