ຕົວຢ່າງການນໍາໃຊ້ຄໍາສັ່ງ grep linux

ການນໍາສະເຫນີ

ຄໍາສັ່ງ grep linux ຖືກນໍາໃຊ້ເປັນວິທີການສໍາລັບການກັ່ນຕອງເຂົ້າ.

GREP stands for Global Regular Expression Printer ແລະດັ່ງນັ້ນເພື່ອນໍາໃຊ້ໄດ້ຢ່າງມີປະສິດທິຜົນ, ທ່ານຄວນມີຄວາມຮູ້ບາງຢ່າງກ່ຽວກັບການສະແດງອອກແບບປົກກະຕິ.

ໃນບົດຄວາມນີ້ຂ້ອຍຈະສະແດງຕົວຢ່າງຕົວຢ່າງທີ່ຊ່ວຍໃຫ້ທ່ານເຂົ້າໃຈຄໍາສັ່ງ grep.

01 of 09

ວິທີການຄົ້ນຫາສໍາລັບຕົວອັກສອນໃນໄຟລ໌ທີ່ໃຊ້ GREP

ຄໍາສັ່ງ grep Linux.

ຈິນຕະນາການວ່າທ່ານມີເອກະສານທີ່ເອີ້ນວ່າປື້ມທີ່ມີຊື່ປື້ມຂອງເດັກນ້ອຍດັ່ງຕໍ່ໄປນີ້:

ເພື່ອຊອກຫາປື້ມທັງຫມົດທີ່ມີຄໍາວ່າ "The" ໃນຫົວຂໍ້ທີ່ທ່ານຈະໃຊ້ syntax ຕໍ່ໄປນີ້:

grep The books

ຜົນໄດ້ຮັບດັ່ງຕໍ່ໄປນີ້ຈະຖືກສົ່ງຄືນ:

ໃນແຕ່ລະກໍລະນີ, ຄໍາວ່າ "The" ຈະຖືກເນັ້ນໃສ່.

ໃຫ້ສັງເກດວ່າການຄົ້ນຫາແມ່ນເລື່ອງທີ່ລະອຽດອ່ອນດັ່ງນັ້ນຖ້າຊື່ຫນຶ່ງມີ "ຕົວແທນ" ແທນ "The" ແລ້ວມັນຈະບໍ່ຖືກສົ່ງຄືນ.

ເພື່ອບໍ່ສົນໃຈກໍລະນີທີ່ທ່ານສາມາດເພີ່ມສະຫຼັບຕໍ່ໄປນີ້:

grep ປື້ມ - ງາມ, ກໍລະນີ

ທ່ານຍັງສາມາດໃຊ້ switch-i ດັ່ງຕໍ່ໄປນີ້:

grep -i ປື້ມ

02 of 09

ຄົ້ນຫາສໍາລັບ String ໃນໄຟລ໌ໂດຍໃຊ້ Wildcards

ຄໍາສັ່ງ grep ແມ່ນມີອໍານາດຫຼາຍ. ທ່ານສາມາດນໍາໃຊ້ເຕັກນິກການຈັບຄູ່ແບບຟອມຕ່າງໆເພື່ອຄັດເລືອກເອົາຜົນໄດ້ຮັບ.

ໃນຕົວຢ່າງນີ້ຂ້ອຍຈະສະແດງວິທີການຄົ້ນຫາຊ່ອຍແນ່ໃນແຟ້ມໂດຍໃຊ້ ຕົວອັກສອນຕົວອັກສອນ .

ຈິນຕະນາການວ່າທ່ານມີໄຟລ໌ທີ່ເອີ້ນວ່າສະຖານທີ່ທີ່ມີສະຖານທີ່ສະຖານທີ່ສວີເດນດັ່ງຕໍ່ໄປນີ້:

aberdeen

aberystwyth

aberlour

inverurie

inverness

newburgh

new deer

new galloway

glasgow

edinburgh

ຖ້າທ່ານຕ້ອງການຊອກຫາສະຖານທີ່ທັງຫມົດທີ່ມີ inver ໃນຊື່ໃຊ້ syntax ຕໍ່ໄປນີ້:

grep inver * places

ຕົວແທນ (*) ຕົວແທນເປັນຕົວເລກ 0 ຫຼືຫຼາຍກວ່າ. ດັ່ງນັ້ນຖ້າທ່ານມີສະຖານທີ່ທີ່ເອີ້ນວ່າ inver ຫຼືບ່ອນທີ່ເອີ້ນວ່າ inverness ແລ້ວທັງສອງຈະຖືກສົ່ງຄືນ.

ຕົວແທນຕົວແທນອື່ນທີ່ທ່ານສາມາດໃຊ້ແມ່ນໄລຍະເວລາ (.). ທ່ານສາມາດໃຊ້ນີ້ເພື່ອໃຫ້ກົງກັບຈົດຫມາຍດຽວ.

grep inverr places

ຄໍາສັ່ງຂ້າງເທິງນີ້ຈະຊອກຫາສະຖານທີ່ທີ່ເອີ້ນວ່າ inverurie ແລະ inverary ແຕ່ບໍ່ໄດ້ພົບເຫັນ invererie ເພາະວ່າມີພຽງແຕ່ຕົວອັກສອນຕົວຫນຶ່ງລະຫວ່າງສອງ r ເທົ່າກັບຫມາຍເຖິງໄລຍະດຽວ.

ຕົວແທນຕົວແທນໄລຍະເວລາເປັນປະໂຫຍດແຕ່ມັນສາມາດກໍ່ໃຫ້ເກີດບັນຫາຖ້າທ່ານມີສ່ວນຫນຶ່ງຂອງຂໍ້ຄວາມທີ່ທ່ານກໍາລັງຊອກຫາ.

ຕົວຢ່າງເບິ່ງໃນບັນຊີຊື່ໂດເມນນີ້

ເພື່ອຄົ້ນຫາ allcoms ທ່ານສາມາດຄົ້ນຫາໂດຍໃຊ້ syntax ຕໍ່ໄປນີ້:

grep * about * domain names

ຄໍາສັ່ງຂ້າງເທິງຈະຕົກລົງຖ້າບັນຊີລາຍຊື່ທີ່ມີຊື່ຕໍ່ໄປນີ້:

ດັ່ງນັ້ນ, ທ່ານສາມາດລອງວິທີການດັ່ງຕໍ່ໄປນີ້:

grep * aboutcom ຊື່ໂດເມນ

ນີ້ຈະເຮັດວຽກໄດ້ດີເວັ້ນເສຍແຕ່ວ່າມີໂດເມນທີ່ມີຊື່ຕໍ່ໄປນີ້:

aboutycomcom

ເພື່ອຄົ້ນຫາຈິງໆກ່ຽວກັບ about.com ທ່ານຈໍາເປັນຕ້ອງຫລີກຫນີຈາກຈຸດດັ່ງຕໍ່ໄປນີ້:

grep * ກ່ຽວກັບ \ com ຊື່ໂດເມນ

ຕົວແທນທີ່ສຸດທ້າຍທີ່ຈະສະແດງໃຫ້ທ່ານເປັນເຄື່ອງຫມາຍຄໍາຖາມທີ່ຫມາຍເຖິງສູນຫຼືຫນຶ່ງຕົວອັກສອນ.

ຍົກ​ຕົວ​ຢ່າງ:

grep? ber placenames

ຄໍາສັ່ງຂ້າງເທິງນີ້ຈະກັບຄືນໄປຫາ aberdeen, aberystwyth ຫຼືແມ້ກະທັ້ງ berwick.

03 of 09

ຄົ້ນຫາສໍາລັບສາຍໃນຕອນເລີ່ມຕົ້ນແລະສິ້ນສຸດຂອງເສັ້ນໃຊ້ grep

ສັນຍາລັກ (^) ແລະສັນຍາລັກເງິນໂດລາ ($) ຊ່ວຍໃຫ້ທ່ານຄົ້ນຫາຮູບແບບໃນຕອນເລີ່ມຕົ້ນແລະສິ້ນສຸດຂອງເສັ້ນ.

ຈິນຕະນາການວ່າທ່ານມີໄຟລ໌ທີ່ເອີ້ນວ່າບານເຕະທີ່ມີຊື່ທີມຕໍ່ໄປນີ້:

ຖ້າທ່ານຕ້ອງການຊອກຫາທີມງານທັງຫມົດທີ່ເລີ່ມຕົ້ນກັບ Manchester ທ່ານຈະຕ້ອງໃຊ້ syntax ຕໍ່ໄປນີ້:

grep Manchester teams

ຄໍາສັ່ງຂ້າງເທິງນີ້ຈະສົ່ງກັບ Manchester City ແລະ Manchester United ແຕ່ບໍ່ແມ່ນ FC United ໃນ Manchester.

ອີກທາງເລືອກຫນຶ່ງທ່ານສາມາດຊອກຫາທີມງານທັງຫມົດທີ່ສິ້ນສຸດດ້ວຍ United ໂດຍໃຊ້ syntax ຕໍ່ໄປນີ້:

grep United $ teams

ຄໍາສັ່ງຂ້າງເທິງນີ້ຈະສົ່ງກັບ Manchester United ແລະ Newcastle United ແຕ່ບໍ່ແມ່ນ FC United ໃນ Manchester.

04 of 09

ນັບຈໍານວນການຈັບຄູ່ໂດຍໃຊ້ grep

ຖ້າທ່ານບໍ່ຢາກກັບຄືນເສັ້ນທີ່ກົງກັບຮູບແບບທີ່ໃຊ້ grep ແຕ່ວ່າທ່ານພຽງແຕ່ຕ້ອງການຮູ້ວ່າມີຫຼາຍວິທີທີ່ທ່ານສາມາດໃຊ້ syntax ຕໍ່ໄປນີ້:

grep-c pattern inputfile

ຖ້າຮູບແບບດັ່ງກ່າວຖືກຈັບຄູ່ສອງຄັ້ງແລ້ວຈໍານວນ 2 ຈະຖືກສົ່ງຄືນ.

05 of 09

ຊອກຫາຂໍ້ກໍານົດທັງຫມົດທີ່ບໍ່ຖືກນໍາໃຊ້ໂດຍ grep

ຈິນຕະນາການວ່າທ່ານມີລາຍຊື່ສະຖານທີ່ທີ່ມີບັນດາປະເທດທີ່ມີລາຍຊື່ດັ່ງຕໍ່ໄປນີ້:

ທ່ານອາດຈະສັງເກດເຫັນວ່າຫີນບູນບໍ່ມີປະເທດທີ່ກ່ຽວຂ້ອງກັບມັນ.

ເພື່ອຄົ້ນຫາສະຖານທີ່ທັງຫມົດທີ່ມີປະເທດທີ່ທ່ານສາມາດໃຊ້ syntax ຕໍ່ໄປນີ້:

grep land $ places

ຜົນໄດ້ຮັບຜົນຕອບແທນຈະເປັນສະຖານທີ່ທັງຫມົດ, ຍົກເວັ້ນສໍາລັບຂົວໂຄວີນ.

ນີ້ແນ່ນອນພຽງແຕ່ເຮັດວຽກສໍາລັບສະຖານທີ່ທີ່ສິ້ນສຸດໃນດິນ (ບໍ່ແມ່ນວິທະຍາສາດ).

ທ່ານສາມາດ invert ເລືອກໂດຍໃຊ້ syntax ຕໍ່ໄປນີ້:

grep-v land $ places

ນີ້ຈະຊອກຫາສະຖານທີ່ທັງຫມົດທີ່ບໍ່ໄດ້ສິ້ນສຸດລົງກັບທີ່ດິນ.

06 of 09

ວິທີການຫາເສັ້ນຫວ່າງເປົ່າໃນໄຟລ໌ທີ່ໃຊ້ grep

ຈິນຕະນາການວ່າທ່ານມີໄຟລ໌ເຂົ້າທີ່ຖືກນໍາໃຊ້ໂດຍຄໍາຮ້ອງສະຫມັກຂອງພາກສ່ວນທີສາມຊຶ່ງຢຸດການອ່ານໄຟລ໌ໃນເວລາທີ່ພົບວ່າມີເສັ້ນເປົ່າຄືດັ່ງຕໍ່ໄປນີ້:

ໃນເວລາທີ່ຄໍາຮ້ອງສະຫມັກໄດ້ຮັບການກັບເສັ້ນຫຼັງຈາກ liverpool ມັນຈະຢຸດເຊົາການອ່ານຄວາມຫມາຍ colwyn Bay ຖືກພາດໂອກາດຫມົດ.

ທ່ານສາມາດໃຊ້ grep ເພື່ອຄົ້ນຫາເສັ້ນຫວ່າງທີ່ມີໄວຣັສຕໍ່ໄປນີ້:

grep $ places

ແຕ່ຫນ້າເສຍດາຍນີ້ບໍ່ແມ່ນຜົນປະໂຫຍດໂດຍສະເພາະແມ່ນຍ້ອນວ່າມັນພຽງແຕ່ສົ່ງຄືນເສັ້ນຫວ່າງເປົ່າ.

ແນ່ນອນວ່າທ່ານສາມາດໄດ້ຮັບການນັບຈໍານວນເສັ້ນຫວ່າງເປົ່າເປັນເຊັກເພື່ອເບິ່ງວ່າໄຟລ໌ແມ່ນຖືກຕ້ອງດັ່ງຕໍ່ໄປນີ້:

grep-c $ places

ຢ່າງໃດກໍ່ຕາມ, ມັນຈະເປັນປະໂຫຍດຫຼາຍທີ່ຈະຮູ້ວ່າບັນດາເສັ້ນທີ່ມີສາຍຫວ່າງເພື່ອໃຫ້ທ່ານສາມາດທົດແທນໄດ້. ທ່ານສາມາດເຮັດໄດ້ດ້ວຍຄໍາສັ່ງຕໍ່ໄປນີ້:

grep-n $ places

07 of 09

ວິທີການຄົ້ນຫາສໍາລັບສາຍຂອງຕົວອັກສອນຫຍໍ້ຫຼືຕົວອັກສອນຕົວນ້ອຍໂດຍໃຊ້ grep

ການນໍາໃຊ້ grep ທ່ານສາມາດກໍານົດເສັ້ນໃດໃນໄຟລ໌ທີ່ມີລັກສະນະຕົວອັກສອນໂດຍໃຊ້ syntax ຕໍ່ໄປນີ້:

grep '[AZ]' filename

ວົງເລັບ [] ໃຫ້ທ່ານກໍານົດລະດັບຂອງຕົວອັກສອນ. ໃນຕົວຢ່າງຂ້າງເທິງນີ້ມັນກົງກັບລັກສະນະໃດຫນຶ່ງທີ່ຢູ່ລະຫວ່າງ A ແລະ Z.

ດັ່ງນັ້ນເພື່ອໃຫ້ກົງກັບຕົວອັກສອນຕົວອັກສອນຕົວອັກສອນທີ່ທ່ານສາມາດໃຊ້ syntax ຕໍ່ໄປນີ້:

grep '[az]' filename

ຖ້າທ່ານຕ້ອງການທີ່ຈະເທົ່າກັບຕົວອັກສອນແລະບໍ່ແມ່ນຕົວເລກຫລືສັນຍາລັກອື່ນໆທ່ານສາມາດໃຊ້ syntax ຕໍ່ໄປນີ້:

grep '[a-zA-Z]' ຊື່ໄຟລ໌

ທ່ານສາມາດເຮັດເຊັ່ນດຽວກັນກັບຕົວເລກດັ່ງຕໍ່ໄປນີ້:

grep '[0-9]' ຊື່ໄຟລ໌

08 of 09

ກໍາລັງຊອກຫາແບບຟອມແບບດຽວກັນໂດຍໃຊ້ grep

ທ່ານສາມາດໃຊ້ວົງເລັບ {} ເພື່ອຊອກຫາແບບຟອມທີ່ເຮັດເລື້ມຄືນ.

ຈິນຕະນາການວ່າທ່ານມີໄຟລ໌ທີ່ມີເບີໂທລະສັບດັ່ງຕໍ່ໄປນີ້:

ທ່ານຮູ້ວ່າສ່ວນທໍາອິດຂອງຈໍານວນຕ້ອງມີສາມຕົວເລກແລະທ່ານຕ້ອງການຊອກຫາເສັ້ນທີ່ບໍ່ກົງກັບຮູບແບບນີ້.

ຈາກຕົວຢ່າງກ່ອນຫນ້ານີ້ທ່ານຮູ້ວ່າ [0-9] ສົ່ງກັບຄືນທັງຫມົດໃນແຟ້ມ.

ໃນຕົວຢ່າງນີ້ພວກເຮົາຕ້ອງການສາຍທີ່ເລີ່ມຕົ້ນດ້ວຍສາມເລກທີ່ຕິດຕາມໂດຍສະມະການ (-). ທ່ານສາມາດເຮັດໄດ້ດ້ວຍ syntax ຕໍ່ໄປນີ້:

grep "[0-9] [0-9] [0-9] -" ຈໍານວນ

ດັ່ງທີ່ພວກເຮົາຮູ້ຈາກຕົວຢ່າງທີ່ຜ່ານມາ carat (^) ຫມາຍຄວາມວ່າເສັ້ນຕ້ອງເລີ່ມຕົ້ນດ້ວຍຮູບແບບດັ່ງຕໍ່ໄປນີ້.

[0-9] ຈະຊອກຫາຈໍານວນໃດຫນຶ່ງລະຫວ່າງ 0 ແລະ 9. ດັ່ງທີ່ໄດ້ຖືກລວມເຖິງສາມຄັ້ງເທົ່າກັບ 3 ເລກ. ສຸດທ້າຍມີສະມະການທີ່ຈະສະແດງວ່າເສັ້ນຜ່າກາງຕ້ອງປະສົບຜົນສໍາເລັດສາມຕົວເລກ.

ໂດຍການໃຊ້ວົງເລັບ, ທ່ານສາມາດຄົ້ນຫາຂະຫນາດນ້ອຍກວ່າດັ່ງຕໍ່ໄປນີ້:

grep "[0-9] \ {3 \} -" numbers

slash escapes {ວົງເລັບດັ່ງນັ້ນມັນເຮັດວຽກເປັນສ່ວນຫນຶ່ງຂອງການສະແດງອອກຢ່າງເປັນປົກກະຕິແຕ່ໂດຍເນື້ອແທ້ແລ້ວສິ່ງທີ່ເວົ້ານີ້ແມ່ນ [0-9] {3} ເຊິ່ງຫມາຍຄວາມວ່າຈໍານວນໃດຫນຶ່ງລະຫວ່າງ 0 ຫາ 9 ສາມເທື່ອ.

ຕົວຍຶດ curly ສາມາດນໍາໃຊ້ດັ່ງຕໍ່ໄປນີ້:

{5,10}

{5,}

{5,10} ຫມາຍຄວາມວ່າຕົວອັກສອນທີ່ຖືກຄົ້ນຫາຕ້ອງໄດ້ຖືກຊ້ໍາຢ່າງຫນ້ອຍ 5 ເທື່ອແຕ່ບໍ່ເກີນ 10 ເທົ່າ, ແຕ່ {5,} ຫມາຍຄວາມວ່າຕົວອັກສອນຕ້ອງໄດ້ຖືກຊ້ໍາຢ່າງຫນ້ອຍ 5 ເທື່ອແຕ່ມັນອາດຈະຫຼາຍກວ່ານັ້ນ.

09 of 09

ການໃຊ້ Output ຈາກຄໍາສັ່ງອື່ນໂດຍໃຊ້ grep

ດັ່ງນັ້ນ, ພວກເຮົາໄດ້ເບິ່ງຮູບແບບທີ່ກົງກັນໃນແຕ່ລະໄຟລ໌ແຕ່ວ່າ grep ສາມາດນໍາໃຊ້ຜົນຜະລິດຈາກຄໍາສັ່ງອື່ນໆເປັນການປ້ອນຂໍ້ມູນສໍາລັບການຊອກຫາຮູບແບບ.

ຕົວຢ່າງທີ່ດີຂອງການນີ້ແມ່ນການນໍາໃຊ້ຄໍາສັ່ງ ps ທີ່ລະບຸຂະບວນການທີ່ໃຊ້ວຽກ.

ຕົວຢ່າງເຊັ່ນດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້:

ps-e

ທັງຫມົດຂອງຂະບວນການແລ່ນໃນລະບົບຂອງທ່ານຈະຖືກສະແດງ.

ທ່ານສາມາດໃຊ້ grep ເພື່ອຄົ້ນຫາຂະບວນການແລ່ນໂດຍສະເພາະດັ່ງຕໍ່ໄປນີ້:

ps -ef | grep firefox

Summary

ຄໍາສັ່ງ grep ແມ່ນຄໍາສັ່ງ Linux ພື້ນຖານແລະມັນກໍ່ແມ່ນຫນຶ່ງໃນທີ່ດີທີ່ຈະຮຽນຮູ້ຍ້ອນວ່າມັນຈະເຮັດໃຫ້ຊີວິດຂອງທ່ານງ່າຍຂຶ້ນໃນເວລາທີ່ຊອກຫາໄຟລ໌ແລະຂະບວນການໃນເວລາທີ່ນໍາໃຊ້ປາຍທາງ.