12 ຕົວຢ່າງພາກປະຕິບັດຂອງ Linux grep Command


ທ່ານເຄີຍປະເຊີນ ໜ້າ ກັບ ໜ້າ ທີ່ການຊອກຫາສະຕິງຫຼືຮູບແບບໃດ ໜຶ່ງ ໃນເອກະສານ, ຍັງບໍ່ຮູ້ວ່າຈະເລີ່ມຕົ້ນຊອກຫາຢູ່ໃສ? ດີແລ້ວ, ນີ້ແມ່ນ grep ເພື່ອການກູ້ໄພ!

grep ແມ່ນຜູ້ຄົ້ນຫາຮູບແບບເອກະສານທີ່ມີປະສິດທິພາບເຊິ່ງມາພ້ອມກັບທຸກໆການແຈກແຈງ Linux. ຖ້າມີເຫດຜົນໃດກໍ່ຕາມ, ມັນບໍ່ໄດ້ຖືກຕິດຕັ້ງຢູ່ໃນລະບົບຂອງທ່ານ, ທ່ານສາມາດຕິດຕັ້ງມັນໄດ້ງ່າຍຜ່ານຜູ້ຈັດການຊຸດຂອງທ່ານ (apt-get on Debian/Ubuntu ແລະ yum ເທິງ RHEL/CentOS/Fedora).

$ sudo apt-get install grep         #Debian/Ubuntu
$ sudo yum install grep             #RHEL/CentOS/Fedora

ຂ້າພະເຈົ້າໄດ້ພົບເຫັນວ່າວິທີທີ່ງ່າຍທີ່ສຸດທີ່ຈະເຮັດໃຫ້ຕີນຂອງທ່ານປຽກດ້ວຍ grep ແມ່ນພຽງແຕ່ ດຳ ນ້ ຳ ຂວາແລະ ນຳ ໃຊ້ບາງຕົວຢ່າງຂອງໂລກທີ່ແທ້ຈິງ.

1. ຄົ້ນຫາແລະຄົ້ນຫາເອກະສານ

ໃຫ້ເວົ້າວ່າທ່ານຫາກໍ່ຕິດຕັ້ງ ສຳ ເນົາ Ubuntu ໃໝ່ ໃນເຄື່ອງຂອງທ່ານ, ແລະທ່ານຈະໃຫ້ Python ຂຽນ. ທ່ານ ກຳ ລັງຂູດເວັບທີ່ ກຳ ລັງຊອກຫາການສອນ, ແຕ່ທ່ານເຫັນວ່າມີ Python ສອງລຸ້ນທີ່ແຕກຕ່າງກັນໃນການ ນຳ ໃຊ້, ແລະທ່ານກໍ່ບໍ່ຮູ້ວ່າມັນຕິດຕັ້ງລະບົບໃດໃນລະບົບຂອງທ່ານໂດຍຜູ້ຕິດຕັ້ງ Ubuntu, ຫຼືຖ້າມັນຕິດຕັ້ງໂມດູນຕ່າງໆ. ພຽງແຕ່ ດຳ ເນີນການ ຄຳ ສັ່ງນີ້:

# dpkg -l | grep -i python
ii  python2.7                        2.7.3-0ubuntu3.4                    Interactive high-level object-oriented language (version 2.7)
ii  python2.7-minimal                2.7.3-0ubuntu3.4                    Minimal subset of the Python language (version 2.7)
ii  python-openssl                   0.12-1ubuntu2.1                     Python wrapper around the OpenSSL library
ii  python-pam                       0.4.2-12.2ubuntu4                   A Python interface to the PAM library

ຫນ້າທໍາອິດ, ພວກເຮົາໄດ້ແລ່ນ dpkg –l, ເຊິ່ງລາຍຊື່ທີ່ຕິດຕັ້ງແພັກເກດ * .deb ໃນລະບົບຂອງທ່ານ. ອັນທີສອງ, ພວກເຮົາໄດ້ສົ່ງຜົນຜະລິດນັ້ນໄປໃຫ້ python grep, ເຊິ່ງບອກງ່າຍໆວ່າ "ໄປທີ່ grep ແລະກັ່ນຕອງອອກແລະສົ່ງຄືນທຸກຢ່າງດ້ວຍ 'python' ໃນມັນ." ຕົວເລືອກ Ii ແມ່ນຢູ່ທີ່ນັ້ນທີ່ຈະບໍ່ສົນໃຈກໍລະນີ, ຍ້ອນວ່າ grep ມີຄວາມລະອຽດອ່ອນ. ການໃຊ້ຕົວເລືອກ –i ແມ່ນນິໄສທີ່ດີຂອງການເຂົ້າໄປໃນ, ເວັ້ນເສຍແຕ່ແນ່ນອນວ່າທ່ານ ກຳ ລັງພະຍາຍາມຕັດການຄົ້ນຫາທີ່ແນ່ນອນກວ່າເກົ່າ.

2. ຄົ້ນຫາແລະກັ່ນຕອງເອກະສານ

grep ຍັງສາມາດຖືກ ນຳ ໃຊ້ເພື່ອຄົ້ນຫາແລະກັ່ນຕອງພາຍໃນແຕ່ລະໄຟລ໌ຫຼືຫຼາຍເອກະສານ. ສາມາດເຮັດໃຫ້ສະຖານະການນີ້:

ທ່ານ ກຳ ລັງປະສົບບັນຫາກັບ Apache Web Server ຂອງທ່ານ, ແລະທ່ານໄດ້ໄປເຖິງ ໜຶ່ງ ໃນຫລາຍໆເວທີທີ່ ໜ້າ ຫວາດສຽວຢູ່ໃນສຸດທິຂໍຄວາມຊ່ວຍເຫລືອ. ຈິດວິນຍານປະເພດທີ່ຕອບທ່ານໄດ້ຂໍໃຫ້ທ່ານເອົາເນື້ອໃນເອກະສານ/etc/apache2/sites-available/default-ssl ຂອງທ່ານ. ມັນຈະງ່າຍກວ່າ ສຳ ລັບທ່ານບໍ, ຜູ້ທີ່ຊ່ວຍທ່ານແລະທຸກຄົນທີ່ອ່ານມັນ, ຖ້າທ່ານສາມາດເອົາທຸກ ຄຳ ເຫັນທັງ ໝົດ ອອກ? ດີທ່ານສາມາດ! ພຽງແຕ່ ດຳ ເນີນການນີ້:

# grep –v “#”  /etc/apache2/sites-available/default-ssl

ຕົວເລືອກ –v ບອກ grep ໃຫ້ກັບຜົນຜະລິດຂອງມັນ, ໝາຍ ຄວາມວ່າແທນທີ່ຈະພິມເສັ້ນທີ່ກົງກັນ, ພິມກົງກັນຂ້າມແລະພິມທຸກເສັ້ນທີ່ບໍ່ກົງກັບການສະແດງອອກ, ໃນກໍລະນີນີ້, # ສາຍທີ່ໃຫ້ ຄຳ ເຫັນ.

3. ຊອກເອເອກະສານ .mp3 ທັງ ໝົດ ເທົ່ານັ້ນ

grep ສາມາດເປັນປະໂຫຍດຫຼາຍ ສຳ ລັບການກັ່ນຕອງຈາກ stdout. ຍົກຕົວຢ່າງ, ໃຫ້ເວົ້າວ່າທ່ານມີໂຟນເດີທັງ ໝົດ ທີ່ເຕັມໄປດ້ວຍເອກະສານເພງໃນຫຼາຍຮູບແບບທີ່ແຕກຕ່າງກັນ. ທ່ານຕ້ອງການທີ່ຈະຊອກຫາເອກະສານ * .mp3 ທັງ ໝົດ ຈາກສິລະປິນ JayZ, ແຕ່ທ່ານບໍ່ຕ້ອງການຕິດຕາມຜົນງານ ໃໝ່. ການໃຊ້ ຄຳ ສັ່ງຊອກຫາທີ່ມີທໍ່ grep ຄູ່ຈະເຮັດແນວໃດ:

# find . –name “*.mp3” | grep –i JayZ | grep –vi “remix”

ໃນຕົວຢ່າງນີ້, ພວກເຮົາ ກຳ ລັງໃຊ້ຊອກຫາເພື່ອພິມເອກະສານທັງ ໝົດ ດ້ວຍການຂະຫຍາຍ * .mp3, ສົ່ງມັນໄປທີ່ grep toi ເພື່ອກັ່ນຕອງອອກແລະພິມເອກະສານທັງ ໝົດ ທີ່ມີຊື່ວ່າ "JayZ" ແລະຕໍ່ຈາກນັ້ນກໍ່ເປັນທໍ່ອື່ນໃຫ້ grep whichvi ເຊິ່ງຕົວກອງ ອອກແລະບໍ່ໄດ້ພິມຊື່ແຟ້ມທັງ ໝົດ ພ້ອມດ້ວຍສະຕິງ (ໃນກໍລະນີໃດກໍ່ຕາມ)“ ລວມ”.

4. ສະແດງ ຈຳ ນວນເສັ້ນກ່ອນຫລືຫຼັງຄົ້ນຫາ

ອີກສອງທາງເລືອກຄືປຸ່ມປ່ຽນ –A ແລະ ,B, ເຊິ່ງສະແດງເສັ້ນທີ່ກົງກັນແລະ ຈຳ ນວນສາຍທີ່ບໍ່ວ່າຈະມາກ່ອນຫລືຫຼັງສາຍສະຕິງຊອກຫາ. ໃນຂະນະທີ່ ໜ້າ ຜູ້ຊາຍໃຫ້ ຄຳ ອະທິບາຍລະອຽດຕື່ມ, ຂ້ອຍຄິດວ່າມັນງ່າຍທີ່ສຸດທີ່ຈະຈື່ ຈຳ ຕົວເລືອກຕ່າງໆທີ່ເປັນ asA = ຫລັງແລະ ,B = ກ່ອນ:

# ifconfig | grep –A 4 eth0
# ifconfig | grep  -B 2 UP

5. ພິມ ຈຳ ນວນເສັ້ນທີ່ຢູ່ອ້ອມຮອບການຈັບຄູ່

ຕົວເລືອກ repC ຂອງ grep ແມ່ນຄ້າຍຄືກັນ, ແຕ່ແທນທີ່ຈະພິມສາຍທີ່ຈະມາກ່ອນຫລືຫຼັງສາຍ, ມັນຈະພິມເສັ້ນໃນທິດທາງ:

# ifconfig | grep –C 2 lo

6. ນັບ ຈຳ ນວນການແຂ່ງຂັນ

ຄ້າຍຄືກັບການສົ່ງສາຍ grep ໄປຫາ ຄຳ ນັບ (ໂປແກຼມ wc) ທາງເລືອກທີ່ຕິດຕັ້ງໃນ grep ສາມາດເຮັດໄດ້ຄືກັນກັບທ່ານ:

# ifconfig | grep –c inet6

7. ຄົ້ນຫາເອກະສານໂດຍສາຍທີ່ໃຫ້

ຕົວເລືອກ –n ສຳ ລັບ grep ແມ່ນມີປະໂຫຍດຫຼາຍເມື່ອການ ກຳ ຈັດເອກະສານໃນລະຫວ່າງການລວບລວມຂໍ້ຜິດພາດຕ່າງໆ. ມັນສະແດງເບີໂທໃນເອກະສານຂອງສາຍຄົ້ນຫາທີ່ໃຫ້:

# grep –n “main” setup..py

8. ຄົ້ນຫາເຊືອກຄືນ ໃໝ່ ໃນທຸກລາຍການ

ຖ້າທ່ານຕ້ອງການຄົ້ນຫາເຊືອກທີ່ຢູ່ໃນໄດເລກະທໍລີປັດຈຸບັນພ້ອມດ້ວຍໄດເລກະທໍລີຍ່ອຍທັງ ໝົດ, ທ່ານສາມາດ ກຳ ນົດຕົວເລືອກທີ່ທ່ານຕ້ອງການຄົ້ນຫາຄືນ ໃໝ່:

# grep –r “function” *

9. ຊອກຫາຮູບແບບທັງ ໝົດ

ຜ່ານທາງເລືອກ –w ເພື່ອ grep ຄົ້ນຫາຮູບແບບທັງ ໝົດ ທີ່ຢູ່ໃນສາຍ. ຕົວຢ່າງ, ການໃຊ້:

# ifconfig | grep –w “RUNNING”

ຈະພິມອອກສາຍທີ່ມີຮູບແບບໃນ ຄຳ ເວົ້າ. ໃນທາງກົງກັນຂ້າມ, ຖ້າທ່ານລອງ:

# ifconfig | grep –w “RUN”

ບໍ່ມີຫຍັງຈະສົ່ງຄືນຍ້ອນວ່າພວກເຮົາບໍ່ຄົ້ນຫາແບບແຜນ, ແຕ່ເປັນ ຄຳ ເວົ້າທັງ ໝົດ.

10. ຄົ້ນຫາສາຍເຊືອກໃນເອກະສານ Gzipped

ສົມຄວນທີ່ຈະກ່າວເຖິງບາງ ຄຳ ບັນຍາຍເປັນເຄື່ອງມືຂອງ grep. ຄັ້ງທໍາອິດແມ່ນ zgrep, ເຊິ່ງຄ້າຍຄືກັບ zcat, ແມ່ນເພື່ອໃຊ້ໃນແຟ້ມ gzipped. ມັນໃຊ້ຕົວເລືອກຄືກັນກັບ grep ແລະຖືກໃຊ້ໃນແບບດຽວກັນ:

# zgrep –i error /var/log/syslog.2.gz

11. ກົງກັບການສະແດງອອກເປັນປະ ຈຳ ໃນເອກະສານ

ຕົວຢ່າງ egrep ແມ່ນອະນຸພັນອື່ນທີ່ຢືນຢູ່ໃນ "ການສະແດງອອກທົ່ວໂລກທົ່ວໄປ" ມັນຮັບຮູ້ການສະແດງອອກຕົວອັກສອນຕົວອັກສອນເພີ່ມເຕີມເຊັ່ນຢູ່ +? | ແລະ().

egrep ແມ່ນມີປະໂຫຍດຫຼາຍ ສຳ ລັບການຄົ້ນຫາເອກະສານແຫຼ່ງຂໍ້ມູນ, ແລະຊິ້ນສ່ວນອື່ນໆຂອງລະຫັດ, ຖ້າຄວາມຕ້ອງການເກີດຂື້ນ. ມັນສາມາດຖືກເອີ້ນຈາກ grep ປົກກະຕິໂດຍການລະບຸຕົວເລືອກ –E.

# grep –E

12. ຄົ້ນຫາແບບສະຕິງແບບຄົງທີ່

fgrep ຄົ້ນຫາເອກະສານຫລືລາຍຊື່ຂອງແຟ້ມ ສຳ ລັບສາຍແບບທີ່ມີຮູບແບບຄົງທີ່. ມັນແມ່ນຄືກັນກັບ grep .F. ວິທີການທົ່ວໄປຂອງການໃຊ້ fgrep ແມ່ນການສົ່ງເອກະສານຂອງຮູບແບບໄປຫາມັນ:

# fgrep –f file_full_of_patterns.txt file_to_search.txt

ນີ້ແມ່ນພຽງແຕ່ຈຸດເລີ່ມຕົ້ນຂອງ grep, ແຕ່ຕາມທີ່ທ່ານອາດຈະສາມາດເຫັນ, ມັນມີຄຸນຄ່າ ສຳ ລັບຈຸດປະສົງທີ່ຫຼາກຫຼາຍ. ນອກ ເໜືອ ຈາກ ຄຳ ສັ່ງ ໜຶ່ງ ເສັ້ນທີ່ງ່າຍດາຍທີ່ພວກເຮົາໄດ້ປະຕິບັດແລ້ວ, grep ສາມາດຖືກ ນຳ ໃຊ້ໃນການຂຽນວຽກ cron ທີ່ມີປະສິດທິພາບ, ແລະສະຄິບແກະທີ່ແຂງແຮງ, ເປັນການເລີ່ມຕົ້ນ.

ມີຄວາມຄິດສ້າງສັນ, ທົດລອງກັບຕົວເລືອກຕ່າງໆໃນ ໜ້າ ຜູ້ຊາຍ, ແລະມາພ້ອມກັບ ສຳ ນວນ grep ທີ່ໃຫ້ບໍລິການເພື່ອຈຸດປະສົງຂອງທ່ານເອງ!