ວິທີການໃຊ້ການສະແດງອອກແບບປະສົມກັບ Awk ໃນ Linux - ພາກທີ 5


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

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

ໃນ Awk, ການສະແດງອອກແບບປະສົມໄດ້ຖືກສ້າງຂື້ນໂດຍໃຊ້ && ອ້າງອີງໃສ່ (ແລະ) ແລະ || ອ້າງເຖິງ (ຫຼື) ຜູ້ປະກອບການປະສົມ.

syntax ທົ່ວໄປ ສຳ ລັບການສະແດງອອກຂອງ ຄຳ ປະສົມແມ່ນ:

( first_expression ) && ( second_expression )

ນີ້, first_expression ແລະ second_expression ຕ້ອງເປັນຄວາມຈິງເພື່ອເຮັດໃຫ້ການສະແດງອອກທັງ ໝົດ ເປັນຄວາມຈິງ.

( first_expression ) || ( second_expression) 

ນີ້, ສຳ ນວນ ໜຶ່ງ ຂອງ ສຳ ນວນບໍ່ວ່າ first_expression ຫຼື second_expression ຕ້ອງເປັນຄວາມຈິງ ສຳ ລັບການສະແດງອອກທັງ ໝົດ ເປັນຄວາມຈິງ.

ຂໍ້ຄວນລະວັງ: ຈົ່ງ ຈຳ ໄວ້ສະ ເໝີ ໃນວົງເລັບ.

ການສະແດງອອກສາມາດຖືກສ້າງຂື້ນໂດຍໃຊ້ຕົວປະຕິບັດການປຽບທຽບທີ່ພວກເຮົາເບິ່ງຢູ່ໃນພາກທີ 4 ຂອງຊຸດງຸ່ມງ່າມ.

ຕອນນີ້ຂໍໃຫ້ພວກເຮົາມີຄວາມເຂົ້າໃຈຢ່າງຈະແຈ້ງໂດຍໃຊ້ຕົວຢ່າງຂ້າງລຸ່ມນີ້:

ໃນຕົວຢ່າງນີ້, ມີເອກະສານຂໍ້ຄວາມທີ່ມີຊື່ວ່າ tecmint_deals.txt , ເຊິ່ງບັນຈຸບັນຊີລາຍຊື່ຂອງຂໍ້ສະ ເໜີ ກ່ຽວກັບ Tecmint ແບບສຸ່ມທີ່ ໜ້າ ປະຫຼາດໃຈ, ມັນປະກອບມີຊື່ຂອງຂໍ້ຕົກລົງ, ລາຄາແລະປະເພດ.

No      Name                                    Price           Type
1       Mac_OS_X_Cleanup_Suite                  $9.99           Software
2       Basics_Notebook                         $14.99          Lifestyle
3       Tactical_Pen                            $25.99          Lifestyle
4       Scapple                                 $19.00          Unknown
5       Nano_Tool_Pack                          $11.99          Unknown
6       Ditto_Bluetooth_Altering_Device         $33.00          Tech
7       Nano_Prowler_Mini_Drone                 $36.99          Tech 

ບອກວ່າພວກເຮົາຕ້ອງການພຽງແຕ່ການພິມແລະທຸງທີ່ມີມູນຄ່າສູງກວ່າ 20 ໂດລາແລະປະເພດ“ ເທັກໂນໂລຢີ” ໂດຍໃຊ້ເຄື່ອງ ໝາຍ ສັນຍາລັກ (**) ຢູ່ໃນຕອນທ້າຍຂອງແຕ່ລະເສັ້ນ.

ພວກເຮົາຈະຕ້ອງ ດຳ ເນີນການ ຄຳ ສັ່ງດັ່ງລຸ່ມນີ້.

# awk '($3 ~ /^$[2-9][0-9]*\.[0-9][0-9]$/) && ($4=="Tech") { printf "%s\t%s\n",$0,"*"; } ' tecmint_deals.txt 

6	Ditto_Bluetooth_Altering_Device		$33.00		Tech	*
7	Nano_Prowler_Mini_Drone			$36.99          Tech	 *

ໃນຕົວຢ່າງນີ້, ພວກເຮົາໄດ້ ນຳ ໃຊ້ສອງ ສຳ ນວນໃນການສະແດງອອກແບບປະສົມ:

<

  • ການສະແດງອອກຄັ້ງ ທຳ ອິດ, ($3 ~/\^$[2-9-9]]]2]]]]]]]]]]]]; ກວດເບິ່ງສາຍທີ່ມີຂໍ້ສະ ເໜີ ກ່ຽວກັບລາຄາສູງກວ່າ 20 ໂດລາ, ແລະມັນເປັນຄວາມຈິງຖ້າວ່າມູນຄ່າ $3 ເຊິ່ງລາຄາແມ່ນກົງກັບຮູບແບບ/[0-9] $/
  • ແລະ ສຳ ນວນທີສອງ, ($4 == "ເທັກໂນໂລຢີ"); ກວດເບິ່ງວ່າການຕົກລົງດັ່ງກ່າວມີປະເພດ "ເທັກໂນໂລຢີ" ແລະມັນເປັນຄວາມຈິງຖ້າວ່າມູນຄ່າ 4 ໂດລາເທົ່າກັບ "ເທັກໂນໂລຢີ".
  • ຈົ່ງຈື່ໄວ້ວ່າເສັ້ນຈະຖືກ ໝາຍ ໃສ່ກັບລະຫັດ (**) ເທົ່ານັ້ນ, ຖ້າວ່າການສະແດງອອກຄັ້ງທີ ໜຶ່ງ ແລະການສະແດງອອກທີສອງແມ່ນຖືກຕ້ອງຕາມລະບຽບຫຼັກການຂອງຜູ້ປະຕິບັດງານ && .

    ບົດສະຫຼຸບ

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

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