6 ເຄື່ອງມື CLI ທີ່ດີທີ່ສຸດໃນການຄົ້ນຫາຂໍ້ມູນທີ່ມີຮູບແບບທົ່ງພຽງໂດຍໃຊ້ ສຳ ນວນປົກກະຕິ
ຄູ່ມືນີ້ໃຊ້ເວລາທັດສະນະກ່ຽວກັບບາງເຄື່ອງມືທີ່ດີທີ່ສຸດໃນເສັ້ນຄໍາສັ່ງທີ່ຖືກນໍາໃຊ້ສໍາລັບການຄົ້ນຫາສາຍທີ່ຖືກຕ້ອງຫຼືຮູບແບບຕ່າງໆໃນເອກະສານຂໍ້ຄວາມ. ເຄື່ອງມືເຫຼົ່ານີ້ມັກຖືກ ນຳ ໃຊ້ຄຽງຄູ່ກັບ ສຳ ນວນປົກກະຕິ - ສັ້ນເທົ່າກັບ REGEX - ເຊິ່ງແມ່ນສາຍເຊືອກທີ່ເປັນເອກະລັກ ສຳ ລັບການອະທິບາຍຮູບແບບການຄົ້ນຫາ.
ຖ້າບໍ່ມີການໂຄສະນາຕໍ່ໄປ, ໃຫ້ທ່ານເຂົ້າໄປໃນ.
1. ຄຳ ສັ່ງ Grep
ການເຂົ້າມາເປັນອັນດັບ ທຳ ອິດແມ່ນເຄື່ອງມືປະໂຫຍດ grep - ແມ່ນ ຄຳ ສັບ ສຳ ລັບການພິມເອກະສານທົ່ວໄປທົ່ວໂລກ, ແມ່ນເຄື່ອງມືທີ່ມີລະບົບ ຄຳ ສັ່ງທີ່ມີປະສິດທິພາບທີ່ມີປະໂຫຍດໃນເວລາທີ່ຄົ້ນຫາສາຍສະເພາະຫລືແບບໃນເອກະສານ.
ເຮືອ Grep ພ້ອມດ້ວຍການແຈກແຈງ Linux ທີ່ທັນສະ ໄໝ ໂດຍຄ່າເລີ່ມຕົ້ນແລະຊ່ວຍໃຫ້ທ່ານມີຄວາມຍືດຫຍຸ່ນໃນການກັບຄືນຜົນການຄົ້ນຫາຕ່າງໆ ດ້ວຍ grep, ທ່ານສາມາດປະຕິບັດ ໜ້າ ທີ່ຫຼາຍຢ່າງເຊັ່ນ:
- ຄົ້ນຫາເຊືອກຫລືແບບທີ່ກົງກັນໃນແຟ້ມເອກະສານ.
- ຄົ້ນຫາເຊືອກຫລືແບບທີ່ກົງກັນໃນແຟ້ມເອກະສານ Gzipped.
- ນັບ ຈຳ ນວນ ຄຳ ວ່າສາຍ.
- ພິມ ໝາຍ ເລກສາຍທີ່ມີສາຍຫລືຮູບແບບ.
- ຄົ້ນຫາຄືນ ໃໝ່ ສຳ ລັບສາຍຕ່າງໆໃນໄດເລກະທໍລີ.
- ດຳ ເນີນການຄົ້ນຫາດ້ານຫຼັງ (ຕົວຢ່າງ: ສະແດງຜົນຂອງສາຍທີ່ບໍ່ກົງກັບເງື່ອນໄຂການຊອກຫາ).
- ບໍ່ສົນໃຈກໍລະນີທີ່ລະອຽດອ່ອນເມື່ອຄົ້ນຫາສາຍຕ່າງໆ.
syntax ສຳ ລັບໃຊ້ ຄຳ ສັ່ງ grep ແມ່ນຂ້ອນຂ້າງງ່າຍດາຍ:
$ grep pattern FILE
ຍົກຕົວຢ່າງ, ເພື່ອຄົ້ນຫາສາຍ ‘Linux‘ ໃນເອກະສານ, ເວົ້າວ່າ, ສະບາຍດີໃນຂະນະທີ່ບໍ່ສົນໃຈກັບຄວາມລະອຽດອ່ອນຂອງກໍລະນີ, ດຳ ເນີນການ ຄຳ ສັ່ງ:
$ grep -i Linux hello.txt
ເພື່ອໃຫ້ໄດ້ຕົວເລືອກເພີ່ມເຕີມທີ່ທ່ານສາມາດໃຊ້ກັບ grep, ພຽງແຕ່ອ່ານບົດຄວາມຂອງພວກເຮົາທີ່ຍົກຕົວຢ່າງຕົວຢ່າງ ຄຳ ສັ່ງ grep ທີ່ກ້າວ ໜ້າ ກວ່າ.
2. sed Command
Sed - ສັ້ນ ສຳ ລັບ Stream Editor - ແມ່ນອີກເຄື່ອງມືທີ່ມີ ຄຳ ສັ່ງທີ່ເປັນປະໂຫຍດ ສຳ ລັບການ ໝູນ ໃຊ້ຂໍ້ຄວາມໃນເອກະສານຂໍ້ຄວາມ. ການຊອກຫາແບບ Sed, ການກັ່ນຕອງແລະການປ່ຽນແທນສາຍໃນເອກະສານທີ່ໃຫ້ໃນແບບທີ່ບໍ່ມີການໂຕ້ຕອບ.
ໂດຍຄ່າເລີ່ມຕົ້ນ, ຄຳ ສັ່ງ sed ພິມອອກຜົນໃຫ້ STDOUT (Standard Out), ໝາຍ ຄວາມວ່າຜົນຂອງການປະຕິບັດຈະຖືກພິມໃສ່ຢູ່ປາຍຍອດແທນທີ່ຈະຖືກເກັບໄວ້ໃນແຟ້ມ.
ຄຳ ສັ່ງ Sed ແມ່ນຖືກຮຽກຮ້ອງດັ່ງຕໍ່ໄປນີ້:
$ sed -OPTIONS command [ file to be edited ]
ຍົກຕົວຢ່າງ, ເພື່ອທົດແທນທຸກໆກໍລະນີຂອງ 'Unix' ກັບ 'Linux', ຂໍ ຄຳ ສັ່ງ:
$ sed 's/Unix/Linux' hello.txt
ຖ້າທ່ານຕ້ອງການປ່ຽນເສັ້ນທາງຜົນຜະລິດແທນທີ່ຈະພິມມັນຢູ່ປາຍທາງ, ໃຊ້ສັນຍານການປ່ຽນເສັ້ນທາງ (>)
ດັ່ງທີ່ສະແດງ.
$ sed 's/Unix/Linux' hello.txt > output.txt
ຜົນໄດ້ຮັບຂອງ ຄຳ ສັ່ງຈະຖືກເກັບໄວ້ໃນແຟ້ມ output.txt ແທນທີ່ຈະຖືກພິມໃສ່ ໜ້າ ຈໍ.
ເພື່ອກວດເບິ່ງຕົວເລືອກເພີ່ມເຕີມທີ່ສາມາດໃຊ້ໄດ້, ອີກເທື່ອ ໜຶ່ງ ກວດເບິ່ງ ໜ້າ man.
$ man sed
3. Ack Command
Ack ແມ່ນເຄື່ອງມືທີ່ບັນຈຸ ຄຳ ສັ່ງທີ່ວ່ອງໄວແລະເຄື່ອນທີ່ໄດ້ຂຽນໃນ Perl. Ack ຖືກຖືວ່າເປັນການທົດແທນທີ່ເປັນມິດ ສຳ ລັບຜົນປະໂຫຍດຂອງ grep ແລະຜົນໄດ້ຮັບຈະສົ່ງຜົນໃຫ້ມີລັກສະນະເປັນຕາເບິ່ງ.
ຄຳ ສັ່ງ Ack ຄົ້ນຫາເອກະສານຫລືໄດເລກະທໍລີ ສຳ ລັບສາຍທີ່ບັນຈຸ ຄຳ ວ່າກົງກັບເງື່ອນໄຂການຊອກຫາ. ຫຼັງຈາກນັ້ນມັນຍົກໃຫ້ເຫັນສາຍເຊັກທີ່ກົງກັນໃນສາຍຕ່າງໆ.
Ack ມີຄວາມສາມາດໃນການ ຈຳ ແນກເອກະສານໂດຍອີງໃສ່ການຂະຫຍາຍເອກະສານຂອງພວກເຂົາ, ແລະໃນລະດັບໃດ ໜຶ່ງ, ເນື້ອໃນຢູ່ໃນແຟ້ມ.
syntax ຄຳ ສັ່ງ Ack:
$ ack [options] PATTERN [FILE...] $ ack -f [options] [DIRECTORY...]
ຕົວຢ່າງ, ເພື່ອກວດສອບໄລຍະການຄົ້ນຫາ Linux, ດຳ ເນີນການ:
$ ack Linux hello.txt
ເຄື່ອງມືຄົ້ນຫາແມ່ນຂ້ອນຂ້າງສະຫຼາດແລະຖ້າບໍ່ມີເອກະສານຫລືໄດເລກະທໍລີທີ່ໃຫ້ໂດຍຜູ້ໃຊ້, ມັນຄົ້ນຫາໄດເລກະທໍລີແລະໄດເລກະທໍລີທີ່ຢູ່ໃນປະຈຸບັນ ສຳ ລັບຮູບແບບການຄົ້ນຫາ.
ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, ບໍ່ມີເອກະສານຫລືໄດເລກະທໍລີທີ່ໄດ້ໃຫ້, ແຕ່ ack ໄດ້ກວດພົບເອກະສານທີ່ມີໂດຍອັດຕະໂນມັດແລະຄົ້ນຫາຮູບແບບທີ່ກົງກັນ.
$ ack Linux
ການຕິດຕັ້ງ ack ໃນລະບົບຂອງທ່ານ ດຳ ເນີນການ ຄຳ ສັ່ງ:
$ sudo apt install ack-grep [On Debian/Ubuntu] $ sudo dnf install ack-grep [On CentOS/RHEL]
4. ຄຳ ສັ່ງ Awk
Awk ແມ່ນພາສາຂຽນແບບເຕັມຮູບແບບແລະຍັງເປັນເຄື່ອງມືການປະມວນຜົນຂໍ້ຄວາມແລະການຈັດການຂໍ້ມູນ. ມັນຄົ້ນຫາເອກະສານຫລືໂປແກຼມທີ່ມີຮູບແບບການຄົ້ນຫາ. ເມື່ອສາຍຫລືຮູບແບບຖືກຄົ້ນພົບ, ງຸ່ມງ່າມປະຕິບັດກັບການຈັບຄູ່ຫລືສາຍແລະພິມຜົນໃນ STDOUT.
ຮູບແບບ AWK ແມ່ນຖືກຫຸ້ມໄວ້ລະຫວ່າງເຊືອກຜູກໃນຂະນະທີ່ໂປແກມທັງ ໝົດ ຖືກຫຸ້ມໄວ້ໃນວົງຢືມດຽວ.
ໃຫ້ຍົກຕົວຢ່າງທີ່ງ່າຍທີ່ສຸດ. ສົມມຸດວ່າທ່ານ ກຳ ລັງພິມວັນທີຂອງລະບົບຂອງທ່ານດັ່ງທີ່ສະແດງ:
$ date
ສົມມຸດວ່າທ່ານພຽງແຕ່ຕ້ອງການພິມອອກຄ່າ ທຳ ອິດ, ເຊິ່ງແມ່ນມື້ຂອງອາທິດ. ໃນກໍລະນີດັ່ງກ່າວ, ທໍ່ຜົນຜະລິດເຂົ້າໄປໃນງຸ່ມງ່າມທີ່ສະແດງ:
$ date | awk '{print $1}'
ເພື່ອສະແດງຄຸນຄ່າຕໍ່ໆໄປ, ໃຫ້ແຍກພວກມັນໂດຍໃຊ້ເຄື່ອງ ໝາຍ ຈຸດດັ່ງທີ່ສະແດງ:
$ date | awk '{print $1,$2}'
ຄຳ ສັ່ງຂ້າງເທິງນີ້ຈະສະແດງມື້ຂອງອາທິດແລະວັນທີຂອງເດືອນ.
ເພື່ອໃຫ້ໄດ້ຮັບຕົວເລືອກເພີ່ມເຕີມທີ່ທ່ານສາມາດໃຊ້ກັບງຸ່ມງ່າມ, ພຽງແຕ່ອ່ານຊຸດ ຄຳ ສັ່ງງຸ່ມງ່າມຂອງພວກເຮົາ.
5. ນັກຄົ້ນຄວ້າເງິນ
ຜູ້ຄົ້ນຫາເງິນແມ່ນເຄື່ອງມືຄົ້ນຫາລະຫັດຂ້າມແລະເວບໄຊທ໌ open source ທີ່ຄ້າຍຄືກັບ ack ແຕ່ເນັ້ນ ໜັກ ໃສ່ຄວາມໄວ. ມັນເຮັດໃຫ້ທ່ານງ່າຍຕໍ່ການຄົ້ນຫາສາຍສະເພາະພາຍໃນແຟ້ມໃນເວລາທີ່ສັ້ນທີ່ສຸດເທົ່າທີ່ເປັນໄປໄດ້:
Syntax:
$ ag OPTIONS search_pattern /path/to/file
ຍົກຕົວຢ່າງ, ເພື່ອຄົ້ນຫາສາຍ ‘Linux’ ໃນເອກະສານ hello.txt ຂໍ ຄຳ ສັ່ງ:
$ ag Linux hello.txt
ສຳ ລັບຕົວເລືອກເພີ່ມເຕີມ, ເຂົ້າເບິ່ງທີ່ ໜ້າ man:
$ man ag
6. Ripgrep
ສຸດທ້າຍ, ພວກເຮົາມີເຄື່ອງມືເສັ້ນ ຄຳ ສັ່ງ ripgrep. Ripgrep ແມ່ນປະໂຫຍດຂ້າມເວທີ ສຳ ລັບການຄົ້ນຫາຮູບແບບ regex. ມັນໄວກ່ວາເຄື່ອງມືຄົ້ນຫາທີ່ກ່າວມາກ່ອນ ໜ້າ ນີ້ທັງ ໝົດ ແລະຄົ້ນຫາລາຍຊື່ການຊອກຫາແບບ ໃໝ່ ສຳ ລັບແບບທີ່ກົງກັນ ໃນແງ່ຂອງຄວາມໄວແລະການປະຕິບັດ, ບໍ່ມີເຄື່ອງມືອື່ນໃດທີ່ໂດດເດັ່ນວ່າ Ripgrep.
ໂດຍຄ່າເລີ່ມຕົ້ນ, ripgrep ຈະຂ້າມໄຟລ໌ໄບນາລີ/ແຟ້ມທີ່ເຊື່ອງໄວ້ແລະໄດເລກະທໍລີ. ນອກຈາກນີ້, ໃຫ້ ຄຳ ແນະ ນຳ ວ່າໃນຕອນຕົ້ນມັນຈະບໍ່ຄົ້ນຫາເອກະສານທີ່ຖືກລະເວັ້ນໂດຍ .gitignore/.ignore/.rgignore.
Ripgrep ຍັງຊ່ວຍໃຫ້ທ່ານຄົ້ນຫາປະເພດເອກະສານສະເພາະ. ຍົກຕົວຢ່າງ, ເພື່ອ ຈຳ ກັດການຄົ້ນຫາຂອງທ່ານໃນໄຟລ໌ Javascript ດຳ ເນີນການ:
$ rg -Tsj
syntax ສຳ ລັບການໃຊ້ ripgrep ແມ່ນຂ້ອນຂ້າງງ່າຍດາຍ:
$ rg [OPTIONS] PATTERN [PATH...]
ຍົກຕົວຢ່າງ. ເພື່ອຄົ້ນຫາຕົວຢ່າງຂອງສາຍ 'Linux' ໃນແຟ້ມຕ່າງໆທີ່ຕັ້ງຢູ່ພາຍໃນໄດເລກະທໍລີປັດຈຸບັນ, ໃຫ້ ດຳ ເນີນການ ຄຳ ສັ່ງ:
$ rg Linux
ການຕິດຕັ້ງ ripgrep ໃນລະບົບຂອງທ່ານ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້:
$ sudo apt install ripgrep [On Debian/Ubuntu] $ sudo pacman -S ripgrep [On Arch Linux] $ sudo zypper install ripgrep [On OpenSuse] $ sudo dnf install ripgrep [On CentOS/RHEL/Fedora]
ສຳ ລັບຕົວເລືອກເພີ່ມເຕີມ, ເຂົ້າເບິ່ງທີ່ ໜ້າ man:
$ man rg
ນີ້ແມ່ນເຄື່ອງມືທີ່ໃຊ້ໃນການບັນຊາ ຄຳ ສັ່ງທີ່ໃຊ້ກັນຢ່າງກວ້າງຂວາງ ສຳ ລັບການຄົ້ນຫາ, ການກັ່ນຕອງແລະການ ໝູນ ໃຊ້ຂໍ້ຄວາມໃນ Linux ຖ້າທ່ານມີເຄື່ອງມືອື່ນທີ່ທ່ານຮູ້ສຶກວ່າພວກເຮົາອອກໄປ, ກະລຸນາແຈ້ງພວກເຮົາໃນສ່ວນ ຄຳ ເຫັນ.