ຮຽນຮູ້ Linux Command-gawk

ຊື່

gawk - ຮູບແບບການສະແກນແລະການແປພາສາ

Synopsis

gawk [POSIX ຫຼື GNU style options] -f file - program [ - ] ...
gawk [ທາງເລືອກ POSIX ຫຼື GNU] [ - ] ໄຟລ໌ ໂຄງການ - ເອກະສານ ...

pgawk [POSIX ຫຼື GNU style options] -f program-file [ - ] file ...
pgawk [ທາງເລືອກ POSIX ຫຼືແບບ GNU] [ - ] ໄຟລ໌ ໂຄງການ - ເອກະສານ ...

ລາຍລະອຽດ

Gawk ແມ່ນການປະຕິບັດຂອງພາສາໂຄງການ AWK ຂອງໂຄງການ GNU . ມັນສອດຄ່ອງກັບຄໍານິຍາມຂອງພາສາໃນ POSIX 10032 ພາສາຄໍາສັ່ງແລະມາດຕະຖານສາທານນູປະໂພກ. ເວີຊັ່ນນີ້ແມ່ນອີງໃສ່ຄໍາອະທິບາຍໃນ ພາສາການຂຽນໂປລແກລມ AWK , ໂດຍ Aho, Kernighan ແລະ Weinberger, ເຊິ່ງມີລັກສະນະເພີ່ມເຕີມທີ່ພົບໃນ Version UN Version 4 ຂອງ UNIX awk . Gawk ຍັງໃຫ້ການສະຫນັບສະຫນູນ Bell Bell Laboratories ຫຼາຍກວ່ານີ້ອີກ, ແລະຈໍານວນຂອງການຂະຫຍາຍ GNU-specific.

Pgawk ແມ່ນສະບັບ profiler ຂອງ gawk . ມັນຄ້າຍຄືກັນໃນທຸກວິທີທີ່ຈະປະຕິເສດ, ເວັ້ນເສຍແຕ່ວ່າໂຄງການທີ່ດໍາເນີນການຊ້າໆ, ແລະມັນອັດຕະໂນມັດຜະລິດປະຕິບັດງານໃນໄຟລ໌ awkprof.out ໃນເວລາທີ່ເຮັດ. ເບິ່ງທາງເລືອກ - profile , ຂ້າງລຸ່ມນີ້.

ເສັ້ນຄໍາສັ່ງປະກອບດ້ວຍຕົວເລືອກທີ່ຈະເຮັດໃຫ້ຕົວມັນເອງ, ຂໍ້ຄວາມຂອງໂຄງການ AWK (ຖ້າບໍ່ສະຫນອງໂດຍທາງເລືອກ -f ຫຼື --file ), ແລະຄ່າທີ່ຈະມີຢູ່ໃນ ARGC ແລະ ARGV ທີ່ກໍານົດໄວ້ຕົວແປ AWK.

ຮູບແບບທາງເລືອກ

ທາງເລືອກ Gawk ອາດຈະເປັນທາງເລືອກ POSIX ແບບດັ້ງເດີມແບບດັ້ງເດີມ, ຫຼືທາງເລືອກແບບ GNU ແບບຍາວ. ຕົວເລືອກ POSIX ເລີ່ມຕົ້ນດ້ວຍ `` - '' ດຽວ, ໃນຂະນະທີ່ທາງເລືອກຍາວເລີ່ມຕົ້ນດ້ວຍ `` - ''. ຕົວເລືອກຍາວແມ່ນໃຫ້ສໍາລັບຄຸນລັກສະນະ GNU ແລະສະເພາະສໍາລັບຄຸນສົມບັດ POSIX.

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

ຕົວເລືອກ

Gawk ຍອມຮັບທາງເລືອກດັ່ງຕໍ່ໄປນີ້, ລະບຸໄວ້ໃນຕົວອັກສອນ.

-F fs

- fsfield-separator fs ໃຊ້ fs ສໍາລັບຕົວແຍກພາກສະຫນາມປ້ອນຂໍ້ມູນ (ຄ່າຂອງ FS predefined variable).

-v var = val

- ຈັດສັນ var = val ກໍາຫນົດຄ່າ val ຕໍ່ var var , ກ່ອນທີ່ຈະປະຕິບັດໂຄງການເລີ່ມຕົ້ນ. ຄ່າຕົວແປດັ່ງກ່າວແມ່ນມີຢູ່ໃນບລັອກ BEGIN ຂອງໂຄງການ AWK.

-f program-file

- ໄຟລ໌ໂຄງການໄຟລ໌ ອ່ານແຫຼ່ງໂຄງການ AWK ຈາກໄຟລ໌ ໂຄງການໄຟລ໌ , ແທນທີ່ຈະຈາກການໂຕ້ຖຽງຄໍາສັ່ງຄັ້ງທໍາອິດ. ຕົວເລືອກຫຼາຍ - f (ຫຼື - ໄຟລ໌ ) ອາດຈະຖືກນໍາໃຊ້.

-mf NNN

-mr NNN ກໍານົດຂໍ້ຈໍາກັດຄວາມຈໍາຕ່າງໆຕໍ່ກັບຄ່າ NNN . ຕົວ ບົ່ງຊີ້ f ກໍານົດຈໍານວນເຂດທີ່ສູງສຸດ, ແລະ r flag ກໍານົດຂະຫນາດບັນທຶກສູງສຸດ. ເຫຼົ່ານີ້ສອງປ້າຍແລະທາງເລືອກ -m ແມ່ນມາຈາກການຄົ້ນຄວ້າທົດລອງຫ້ອງທົດລອງຂອງ UNIX awk . ພວກເຂົາເຈົ້າຖືກປະຕິເສດໂດຍ gawk , ເນື່ອງຈາກວ່າ gawk ບໍ່ມີຂອບເຂດກໍານົດໄວ້ລ່ວງຫນ້າ.

-W compat

-W traditional

--compat

--traduction ແລ່ນໃນໂຫມດ ຄວາມເຂົ້າກັນໄດ້ . ໃນໂຫມດຄວາມເຂົ້າກັນໄດ້, gawk ເຮັດຫນ້າທີ່ຄືກັນກັບ UNIX awk ; none ການຂະຫຍາຍ GNU-specific ແມ່ນຖືກຮັບຮູ້. ການນໍາໃຊ້ --traditional ແມ່ນຖືກນໍາໃຊ້ຫຼາຍກວ່າຮູບແບບອື່ນໆຂອງຕົວເລືອກນີ້. ເບິ່ງ GNU EXTENSIONS , ຂ້າງລຸ່ມນີ້, ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.

-W copyleft

-W copyright

- copy

- ຫງວນລິຂະສິດພິມເວີຊັນສັ້ນຂອງຂໍ້ມູນຂ່າວສານຂໍ້ມູນລິຂະສິດ GNU ຢູ່ໃນມາດຕະຖານຜົນຜະລິດແລະອອກຈາກປະສົບຜົນສໍາເລັດ.

-W dump-variables [ = ໄຟລ໌ ]

- ຕົວແປແບບອັດຕະໂນມັດ [ = ໄຟລ໌ ] ພິມບັນຊີລາຍຊື່ຂອງຕົວແປທົ່ວໂລກ, ປະເພດແລະມູນຄ່າສຸດທ້າຍຂອງມັນທີ່ຈະບັນ ທຶກ . ຖ້າບໍ່ມີ ໄຟລ໌ ໃດໆ, gawk ໃຊ້ໄຟລ໌ທີ່ມີຊື່ວ່າ awkvars.out ໃນໄດເລກະທໍລີປະຈຸບັນ.

ມີບັນຊີລາຍຊື່ຂອງຕົວແປທັງຫມົດຂອງໂລກແມ່ນວິທີການທີ່ດີທີ່ຈະຊອກຫາຂໍ້ຜິດພາດໃນແບບພິມໃນໂປແກຼມຂອງທ່ານ. ນອກນັ້ນທ່ານຍັງສາມາດໃຊ້ຕົວເລືອກນີ້ຖ້າທ່ານມີໂຄງການຂະຫນາດໃຫຍ່ທີ່ມີຫຼາຍຫນ້າທີ່, ແລະທ່ານຕ້ອງການໃຫ້ແນ່ໃຈວ່າຫນ້າທີ່ຂອງທ່ານບໍ່ໄດ້ນໍາໃຊ້ຕົວແປທົ່ວໂລກທີ່ທ່ານຫມາຍເຖິງທ້ອງຖິ່ນ. (ນີ້ແມ່ນຂໍ້ຜິດພະລາດງ່າຍໆໂດຍງ່າຍທີ່ຈະເຮັດດ້ວຍຊື່ຕົວແປງ່າຍໆເຊັ່ນ i , j , ແລະອື່ນໆ).

-W help

-W usage

--help

- ການ ພິມພິມສະຫຼຸບສັ້ນໆກ່ຽວກັບຕົວເລືອກທີ່ມີຢູ່ໃນຜົນຜະລິດມາດຕະຖານ. (ຕາມ ມາດຕະຖານ ການກໍານົດ GNU , ທາງເລືອກເຫຼົ່ານີ້ເຮັດໃຫ້ເກີດການປະສົບຜົນສໍາເລັດໃນທັນທີ).

-W lint [ = fatal ]

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

-W lint-old

- ເກົ່າ - ເກົ່າ ໃຫ້ຄໍາເຕືອນກ່ຽວກັບການກໍ່ສ້າງທີ່ບໍ່ສາມາດເອົາໄປໃຊ້ກັບເວີຊັນທໍາອິດຂອງ Unix awk .

-W gen-po

- gen-po ການສະ ແກນແລະວິເຄາະໂຄງການ AWK, ແລະສ້າງໄຟລ໌ຮູບແບບ GNU .po ໃນມາດຕະຖານຜົນຜະລິດທີ່ມີລາຍະການສໍາລັບລະຫັດທ້ອງຖິ່ນທັງຫມົດໃນໂຄງການ. ໂຄງການຕົວມັນເອງບໍ່ໄດ້ຖືກປະຕິບັດ. ເບິ່ງການແຈກຢາຍຂໍ້ມູນຂອງ GNU ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບໄຟລ໌ .po .

-W non-decimal-data

- ຂໍ້ມູນທີ່ບໍ່ Decimal - ຮັບຮູ້ມູນຄ່າ octal ແລະ hexadecimal ໃນຂໍ້ມູນປະກອບ. ໃຊ້ຕົວເລືອກນີ້ດ້ວຍຄວາມລະມັດລະວັງດີ!

-W posix

--posix ນີ້ປ່ຽນໂຫມດ ຄວາມເຂົ້າກັນໄດ້ ກັບຂໍ້ຈໍາກັດເພີ່ມເຕີມຕໍ່ໄປນີ້:

*

\ x sequences escape ບໍ່ໄດ້ຮັບຮູ້.

*

ພຽງແຕ່ພື້ນທີ່ແລະແທັບໃຊ້ເປັນຕົວແຍກຂໍ້ມູນໃນເວລາທີ່ FS ຖືກຕັ້ງຄ່າໃຫ້ເປັນຊ່ອງດຽວ, newline ບໍ່ໄດ້.

*

ທ່ານບໍ່ສາມາດສືບຕໍ່ສາຍຫຼັງໄດ້ ບໍ? ແລະ : .

*

ຟັງຊັນ ຄໍາສັບສໍາລັບຄໍາສັບຄໍາສັບບໍ່ໄດ້ຖືກຮັບຮູ້.

*

ຜູ້ປະກອບການ ** ແລະ ** = ບໍ່ສາມາດໃຊ້ແທນທີ່ແລະ ^ = .

*

ຟັງຊັນ fflush () ບໍ່ສາມາດໃຊ້ໄດ້.

-W profile [ = prof_file ]

- profile [ = prof_file ] ສົ່ງຂໍ້ມູນການ profiling ກັບ prof_file . ຄ່າເລີ່ມຕົ້ນແມ່ນ awkprof.out . ໃນເວລາທີ່ດໍາເນີນການກັບ gawk , ໂປຣໄຟລແມ່ນພຽງແຕ່ "ພິມ pretty ຂອງ" ຂອງໂຄງການ. ໃນເວລາທີ່ດໍາເນີນການກັບ pgawk , ໂປຣໄຟລມີບັນຊີປະຕິບັດການຂອງແຕ່ລະຄໍາສັ່ງໃນໂປລແກລມໃນຂອບຂອບຊ້າຍແລະການເອີ້ນຟັງຊັນຂອງຟັງຊັນສໍາລັບແຕ່ລະຄົນທີ່ກໍານົດໂດຍຜູ້ໃຊ້.

-W re-interval

-re-interval ອະນຸຍາດ ໃຫ້ນໍາໃຊ້ການ ສະແດງອອກ ໃນ ໄລຍະ ທີ່ກົງກັນໃນການສະແດງອອກແບບປົກກະຕິ (ເບິ່ງຄໍາອະທິບາຍ ປະກະຕິ , ຂ້າງລຸ່ມນີ້). ການສະແດງອອກໃນໄລຍະບໍ່ໄດ້ມີຢູ່ໃນພາສາ AWK. ມາດຕະຖານ POSIX ເພີ່ມໃຫ້ພວກເຂົາ, ເພື່ອເຮັດໃຫ້ awk ແລະ egrep ສອດຄ່ອງກັບກັນແລະກັນ. ຢ່າງໃດກໍຕາມ, ການນໍາໃຊ້ຂອງພວກເຂົາອາດຈະທໍາລາຍໂຄງການ AWK ເກົ່າ, ດັ່ງນັ້ນ gawk ພຽງແຕ່ໃຫ້ພວກເຂົາຖ້າພວກເຂົາຖືກຮ້ອງຂໍໃຫ້ມີທາງເລືອກນີ້, ຫຼືເມື່ອ - ໂປແກມ ໄດ້ຖືກກໍານົດໄວ້.

-W source program-text

- ແຫຼ່ງຂໍ້ມູນ ໂຄງການ ນໍາໃຊ້ ໂຄງການຂໍ້ຄວາມ ເປັນລະຫັດແຫຼ່ງໂຄງການ AWK. ຕົວເລືອກນີ້ອະນຸຍາດໃຫ້ງ່າຍຕໍ່ການເຊື່ອມໂຍງຂອງຫນ້າທີ່ຫ້ອງສະຫມຸດ (ໃຊ້ທາງເລືອກ -f ແລະ - ໄຟລ໌) ທີ່ມີລະຫັດທີ່ມາໃສ່ບັນທັດຄໍາສັ່ງ. ມັນແມ່ນຈຸດປະສົງຕົ້ນຕໍສໍາລັບໂຄງການ AWK ຂະຫນາດກາງກັບຂະຫນາດໃຫຍ່ທີ່ໃຊ້ໃນການຂຽນ scripts.

-W version

- ການໂອນ ຂໍ້ມູນຂ່າວສານສໍາລັບການພິມສໍາລັບການສໍາເນົາສະເພາະໃດຫນຶ່ງຂອງ gawk ນີ້ ຢູ່ໃນມາດຕະຖານຜົນຜະລິດ. ນີ້ແມ່ນມີຜົນປະໂຫຍດສ່ວນໃຫຍ່ແມ່ນສໍາລັບການຮູ້ວ່າສໍາເນົາໃນປັດຈຸບັນຂອງລະບົບຂອງທ່ານແມ່ນມີຄວາມທັນສະໄຫມກ່ຽວກັບສິ່ງທີ່ Free Software Foundation ແມ່ນແຈກຢາຍ. ນີ້ຍັງມີປະໂຫຍດໃນການລາຍງານຂໍ້ບົກພ່ອງ. (ຕາມ ມາດຕະຖານ ການກໍານົດ GNU , ທາງເລືອກເຫຼົ່ານີ້ເຮັດໃຫ້ເກີດການປະສົບຜົນສໍາເລັດໃນທັນທີ).

- ສັນຍານຕອນທ້າຍຂອງທາງເລືອກ. ນີ້ແມ່ນເປັນປະໂຫຍດເພື່ອອະນຸຍາດໃຫ້ໂຕ້ຖຽງຕື່ມອີກກັບໂຄງການ AWK ຕົວມັນເອງເພື່ອເລີ່ມຕົ້ນດ້ວຍ `` - ''. ນີ້ແມ່ນສ່ວນໃຫຍ່ສໍາລັບການສອດຄ່ອງກັບການໂຕ້ຖຽງ parsing ການໂຕ້ຖຽງທີ່ນໍາໃຊ້ໂດຍໂຄງການ POSIX ອື່ນໆ.

ໃນໂຫມດຄວາມເຂົ້າກັນໄດ້, ທາງເລືອກອື່ນໃດກໍ່ຖືກລະບຸວ່າບໍ່ຖືກຕ້ອງ, ແຕ່ຖືກລະເວັ້ນອີກ. ໃນການດໍາເນີນງານຕາມປົກກະຕິ, ເວັ້ນເສຍ ແຕ່ວ່າຂໍ້ຄວາມຂອງໂຄງການໄດ້ຖືກສະຫນອງ, ທາງເລືອກທີ່ບໍ່ຮູ້ຈັກຈະຖືກສົ່ງໄປຫາໂຄງການ AWK ໃນ ARGV array ສໍາລັບການປຸງແຕ່ງ. ນີ້ແມ່ນມີປະໂຫຍດໂດຍສະເພາະສໍາລັບການດໍາເນີນໂຄງການ AWK ຜ່ານກົນໄກການແປພາສາ `` #! ''.

AWK PROGRAM EXECUTION

ໂຄງການ AWK ປະກອບດ້ວຍລໍາດັບຂອງຄໍາສັ່ງການປະຕິບັດແບບແຜນແລະຄໍານິຍາມການເຮັດວຽກທີ່ເລືອກ.

pattern { action statements }

ຊື່ ຟັງຊັນ ( ພາລາມິເຕີລາຍະການ ) { statements }

Gawk ທໍາອິດຈະອ່ານແຫຼ່ງໂປແກຼມຈາກ ໄຟລ໌ໂຄງການ ຖ້າຫາກວ່າໄດ້ກໍານົດ, ຈາກການໂຕ້ຖຽງກັບ - ແຫຼ່ງຂໍ້ມູນ , ຫຼືຈາກການໂຕ້ຖຽງທີ່ບໍ່ແມ່ນຕົວເລືອກທໍາອິດໃນເສັ້ນຄໍາສັ່ງ. ທາງເລືອກ -f ແລະ - ແຫຼ່ງຂໍ້ມູນ ອາດຈະຖືກນໍາໃຊ້ຫຼາຍຄັ້ງໃນເສັ້ນຄໍາສັ່ງ. Gawk ອ່ານຂໍ້ຄວາມຂອງໂປແກຼມໂປຼແກຼມທີ່ວ່າທັງຫມົດຂອງ ໂປຼແກຼມໂປຼແກຼມໄຟລ໌ ແລະ ໄຟລ໌ ຄໍາສັ່ງໄດ້ຖືກກັນມາຮ່ວມກັນ. ນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການສ້າງຫ້ອງສະຫມຸດຂອງຫນ້າທີ່ AWK, ໂດຍບໍ່ຕ້ອງມີໃຫ້ພວກເຂົາຢູ່ໃນແຕ່ລະໂຄງການ AWK ໃຫມ່ທີ່ໃຊ້ມັນ. ມັນຍັງສະຫນອງຄວາມສາມາດປະສົມປະສານຫນ້າທີ່ຫ້ອງສະຫມຸດກັບບັນດາໂຄງການຄໍາສັ່ງ.

ຕົວປ່ຽນສະພາບແວດລ້ອມ AWKPATH ກໍານົດເສັ້ນທາງຄົ້ນຫາທີ່ຈະໃຊ້ໃນເວລາທີ່ຊອກຫາໄຟລ໌ທີ່ມີຊື່ທີ່ມີຕົວເລືອກ -f . ຖ້າຕົວແປນີ້ບໍ່ມີ, ເສັ້ນທາງເລີ່ມຕົ້ນແມ່ນ ".: / usr / local / share / awk" . (ລະບົບປະຕິບັດການອາດຈະແຕກຕ່າງກັນ, ອີງຕາມວິທີການສ້າງແລະຕິດຕັ້ງ gawk.) ຖ້າຊື່ແຟ້ມທີ່ມີຕົວເລືອກ -f ມີລັກສະນະ `/ / ', ບໍ່ມີການຊອກຫາເສັ້ນທາງ.

Gawk ດໍາເນີນໂຄງການ AWK ໃນຄໍາສັ່ງດັ່ງຕໍ່ໄປນີ້. ຫນ້າທໍາອິດ, ການມອບຫມາຍການກໍານົດທັງຫມົດໂດຍຜ່ານຕົວເລືອກ -v ຈະຖືກປະຕິບັດ. ຕໍ່ໄປ, gawk compiles ໂຄງການເຂົ້າໄປໃນແບບຟອມພາຍໃນ. ຫຼັງຈາກນັ້ນ, gawk executes ລະຫັດໃນຕັນ (s) BEGIN (ຖ້າມີ), ແລະຫຼັງຈາກນັ້ນສືບຕໍ່ການອ່ານໄຟລ໌ແຕ່ລະຊື່ໃນ ARGV ອາເລ. ຖ້າຫາກວ່າບໍ່ມີໄຟລ໌ທີ່ມີຊື່ຢູ່ໃນບັນທັດຄໍາສັ່ງ, gawk ຈະອ່ານຂໍ້ມູນເຂົ້າໃສ່ມາດຕະຖານ.

ຖ້າຊື່ໄຟລ໌ໃນບັນທັດຄໍາສັ່ງມີຮູບແບບ var = val ມັນຖືກຖືວ່າເປັນການກໍານົດຄ່າຕົວແປ. var var variable ຈະຖືກກໍາຫນົດຄ່າ val . (ນີ້ຈະເກີດຫຍັງຂຶ້ນຫຼັງຈາກທີ່ບລັອກ BEGIN ໃດໆໄດ້ຖືກດໍາເນີນການ.) ການກໍານົດຕົວກໍານົດເສັ້ນຄໍາສັ່ງແມ່ນມີປະໂຫຍດຫຼາຍທີ່ສຸດສໍາລັບການກໍານົດຄ່າແບບເຄື່ອນໄຫວແບບອັດຕະໂນມັດເພື່ອຕົວແປ AWK ໃຊ້ເພື່ອຄວບຄຸມວິທີການປ້ອນຂໍ້ມູນເຂົ້າໄປໃນທົ່ງນາແລະບັນທຶກ. ມັນຍັງມີປະໂຫຍດສໍາລັບການຄວບຄຸມລະບົບຖ້າມີຈໍານວນຫຼາຍທີ່ຕ້ອງການໃນໄລຍະໄຟລ໌ຂໍ້ມູນດຽວ.

ຖ້າຄ່າຂອງອົງປະກອບ ARGV ໂດຍສະເພາະແມ່ນຫວ່າງ ( "" ), gawk ຂ້າມມັນ.

ສໍາລັບແຕ່ລະບັນທຶກໃນການປະກອບ, ການທົດສອບ gawk ເພື່ອເບິ່ງວ່າມັນກົງກັບ ຮູບແບບ ຕ່າງໆໃນໂຄງການ AWK. ສໍາລັບຮູບແບບແຕ່ລະບັນທຶກການແຂ່ງຂັນ, ການ ປະຕິບັດ ທີ່ກ່ຽວຂ້ອງຖືກປະຕິບັດ. ຮູບແບບຕ່າງໆໄດ້ຖືກທົດສອບໃນຄໍາສັ່ງທີ່ພວກເຂົາເກີດຂຶ້ນໃນໂຄງການ.

ສຸດທ້າຍ, ຫຼັງຈາກການປະຕິບັດທັງຫມົດຫມົດແລ້ວ, gawk ດໍາເນີນການລະຫັດໃນ END ຕັນ (s) (ຖ້າມີ).

Variables, Records, ແລະ Fields

ຕົວແປ AWK ແມ່ນແບບເຄື່ອນໄຫວ; ພວກເຂົາມາເປັນເວລາທີ່ພວກເຂົາຖືກນໍາໃຊ້ຄັ້ງທໍາອິດ. ມູນຄ່າຂອງພວກເຂົາແມ່ນຈໍານວນຕົວເລກຫຼືສາຍ, ຫຼືທັງສອງ, ໂດຍອີງຕາມວິທີທີ່ພວກມັນຖືກນໍາໃຊ້. AWK ຍັງມີແຖວຫນຶ່ງມິຕິ; ຕາຕະລາງທີ່ມີຂະຫນາດຫຼາຍອາດຈະຖືກຈໍາລອງ. ຕົວແປທີ່ກໍານົດໄວ້ກ່ອນຫນ້ານີ້ຈໍານວນຫນຶ່ງຖືກກໍານົດເປັນໂຄງການທີ່ເນັ້ນ; ເຫຼົ່ານີ້ຈະຖືກອະທິບາຍຕາມຄວາມຕ້ອງການແລະສະຫຼຸບດ້ານລຸ່ມນີ້.

ບັນທຶກ

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

Fields

ເມື່ອບັນທຶກຂໍ້ມູນແຕ່ລະບັນທຶກຖືກອ່ານ, gawk ແບ່ງປັນບັນທຶກເຂົ້າໄປໃນ ຊ່ອງ ໂດຍໃຊ້ຄ່າຂອງແປ FS ເປັນຕົວແຍກພາກສະຫນາມ. ຖ້າ FS ເປັນຕົວອັກສອນດຽວ, ທົ່ງນາທີ່ຖືກແຍກອອກໂດຍຕົວອັກສອນນັ້ນ. ຖ້າ FS ເປັນຊອງ null, ຫຼັງຈາກນັ້ນຕົວອັກສອນແຕ່ລະຄົນຈະກາຍເປັນພາກສະຫນາມແຍກຕ່າງຫາກ. ຖ້າບໍ່ດັ່ງນັ້ນ, FS ຄາດວ່າຈະເປັນການສະແດງອອກເປັນປົກກະຕິຢ່າງເຕັມທີ່. ໃນກໍລະນີພິເສດທີ່ FS ເປັນພື້ນທີ່ດຽວ, ທົ່ງນາທີ່ຖືກແຍກອອກໂດຍການເຮັດວຽກຂອງສະຖານທີ່ແລະ / ຫຼືກ່ອງແລະ / ຫຼືສາຍໃຫມ່. (ແຕ່ເບິ່ງການສົນທະນາຂອງ --posix , ຂ້າງລຸ່ມນີ້). ຫມາຍເຫດ: ມູນຄ່າຂອງ IGNORECASE (ເບິ່ງຂ້າງລຸ່ມນີ້) ຍັງມີຜົນກະທົບຕໍ່ວິທີການແບ່ງປັນທົ່ງນາໃນເວລາທີ່ FS ເປັນການສະແດງອອກເປັນປົກກະຕິ, ແລະວິທີການແຍກຕ່າງຫາກໃນເວລາທີ່ RS ເປັນການສະແດງອອກເປັນປົກກະຕິ.

ຖ້າຕົວແປ FIELDWIDTHS ຖືກຕັ້ງຄ່າໄວ້ໃນບັນຊີລາຍຊື່ທີ່ແຕກຕ່າງກັນຂອງຊ່ອງ, ແຕ່ລະເຂດຄາດວ່າຈະມີຄວາມກວ້າງຄົງທີ່ແລະ gawk ແບ່ງປັນບັນທຶກດ້ວຍຄວາມກວ້າງທີ່ລະບຸໄວ້. ມູນຄ່າຂອງ FS ແມ່ນຖືກລະເລີຍ. ການມອບຫມາຍມູນຄ່າໃຫມ່ໃຫ້ກັບ FS overrides ການນໍາໃຊ້ FIELDWIDTHS , ແລະ restores ການປະພຶດທໍາອິດ.

ແຕ່ລະເຂດໃນບັນທຶກປະກອບອາດຈະຖືກອ້າງອີງໃສ່ຕໍາແຫນ່ງຂອງມັນ, $ 1 , $ 2 , ແລະອື່ນໆ. $ 0 ແມ່ນບັນທຶກທັງຫມົດ. ບໍ່ຕ້ອງການອ້າງອິງເຂດຂໍ້ມູນໂດຍຈໍາກັດ:

n = 5
print $ n

ພິມພາກສະຫນາມທີຫ້າໃນບັນທຶກການປະມູນ.

ຕົວແປ NF ໄດ້ຖືກກໍານົດໃຫ້ມີຈໍານວນຂອງທົ່ງນາໃນບັນທຶກຂໍ້ມູນ.

ເອກະສານອ້າງອີງກັບຂົງເຂດທີ່ບໍ່ມີຢູ່ (ເຊັ່ນ: ທົ່ງນາຫຼັງ $ NF ) ຜະລິດ null-string. ຢ່າງໃດກໍ່ຕາມ, ການກໍາຫນົດເຂດທີ່ບໍ່ມີຢູ່ (ເຊັ່ນ: $ (NF + 2) = 5 ) ເພີ່ມມູນຄ່າຂອງ NF , ສ້າງຊ່ອງໃດລະຫວ່າງຂໍ້ມູນທີ່ມີ null string ເປັນມູນຄ່າຂອງມັນແລະເຮັດໃຫ້ມູນຄ່າຂອງ $ 0 ຖືກ recomputed, ທົ່ງນາທີ່ຖືກແຍກດ້ວຍມູນຄ່າຂອງ OFS . ການອ້າງອິງກັບຂົງເຂດຫມາຍເລກລົບເຮັດໃຫ້ເກີດຄວາມຜິດພາດທີ່ຮ້າຍແຮງ. ການຫຼຸດລົງ NF ເຮັດໃຫ້ມູນຄ່າຂອງເຂດທີ່ຜ່ານມາມູນຄ່າໃຫມ່ຖືກສູນເສຍ, ແລະມູນຄ່າຂອງ $ 0 ຈະຖືກ recomputed, ດ້ວຍທົ່ງນາທີ່ຖືກແຍກອອກໂດຍມູນຄ່າຂອງ OFS .

ການມອບຫມາຍມູນຄ່າໃຫ້ພາກສະຫນາມທີ່ມີຢູ່ນັ້ນເຮັດໃຫ້ການບັນທຶກທັງຫມົດຖືກສ້າງຂຶ້ນເມື່ອ $ 0 ຖືກອ້າງອີງ. ເຊັ່ນດຽວກັນ, ການມອບຫມາຍມູນຄ່າເປັນ $ 0 ເຮັດໃຫ້ການບັນທຶກທີ່ຈະປັບປຸງໃຫມ່, ສ້າງມູນຄ່າໃຫມ່ສໍາລັບທົ່ງນາ.

ຕົວກໍານົດຕົວເຂົ້າໃນ

ຕົວແປທີ່ມີຢູ່ໃນ Gawk ຄື:

ARGC

ຈໍານວນຄໍາສັ່ງບັນທັດຄໍາສັ່ງ (ບໍ່ລວມເອົາຕົວເລືອກທີ່ຕ້ອງການ, ຫຼືແຫຼ່ງໂປແກຼມ).

ARGIND

ດັດຊະນີໃນ ARGV ຂອງໄຟລ໌ທີ່ກໍາລັງດໍາເນີນການ.

ARGV

Array of arguments line command ອາເລແມ່ນດັດສະນີຈາກ 0 ຫາ ARGC - 1. ການປ່ຽນແປງເນື້ອຫາຂອງ ARGV ສາມາດຄວບຄຸມໄຟລ໌ທີ່ໃຊ້ສໍາລັບຂໍ້ມູນ.

BINMODE

ໃນລະບົບທີ່ບໍ່ແມ່ນ POSIX, ລະບຸການນໍາໃຊ້ຮູບແບບ `` ຄູ່ '' ສໍາລັບ I / O ໄຟລ໌ທັງຫມົດ. ຄ່າຕົວເລກຂອງ 1, 2, ຫຼື 3, ລະບຸວ່າໄຟລ໌ເຂົ້າ, ໄຟລ໌ຜົນຜະລິດ, ຫຼືໄຟລ໌ທັງຫມົດ, ຄວນໃຊ້ I / O ໄບ. ຄ່າຕົວອັກສອນຂອງ "r" , ຫຼື "w" ກໍານົດວ່າໄຟລ໌ປະກອບຫຼືໄຟລ໌ຜົນຜະລິດ, ຕາມລໍາດັບ, ຄວນໃຊ້ I / O ສອງລະດັບ. ຄ່າຕົວອັກສອນຂອງ "rw" ຫຼື "wr" ກໍານົດວ່າໄຟລ໌ທັງຫມົດຄວນໃຊ້ I / O ສອງລະດັບ. ມູນຄ່າຊ້ໍາອື່ນໆຈະຖືກຖືວ່າເປັນ "rw" ແຕ່ສ້າງຂໍ້ຄວາມເຕືອນ.

CONVFMT

ຮູບແບບການແປງສໍາລັບຈໍານວນ, "% .6g" , ໂດຍຄ່າເລີ່ມຕົ້ນ.

ENVIRON

ອາເລທີ່ມີຄຸນຄ່າຂອງສະພາບແວດລ້ອມໃນປະຈຸບັນ. ອາເລແມ່ນ indexed ໂດຍຕົວແປສະພາບແວດລ້ອມ, ແຕ່ລະອົງປະກອບແມ່ນມູນຄ່າຂອງຕົວແປທີ່ (ເຊັ່ນ: ENVIRON ["HOME"] ອາດຈະ / home / arnold ). ການປ່ຽນແປງອາເລນີ້ບໍ່ມີຜົນກະທົບຕໍ່ສະພາບແວດລ້ອມທີ່ເຫັນໄດ້ໂດຍໂຄງການທີ່ gawk ເກີດໂດຍການປ່ຽນເສັ້ນທາງຫລື ລະບົບ () .

ERRNO

ຖ້າມີຂໍ້ຜິດພາດຂອງລະບົບການເຮັດ redirection ສໍາລັບ getline , ໃນເວລາອ່ານສໍາລັບ getline ຫຼືໃນໄລຍະ ປິດ () , ຫຼັງຈາກນັ້ນ, ERRNO ຈະມີລະຫັດສະແດງຂໍ້ຜິດພາດ. ມູນຄ່າແມ່ນຂຶ້ນກັບການແປພາສາໃນທ້ອງຖິ່ນທີ່ບໍ່ແມ່ນພາສາອັງກິດ.

FIELDWIDTHS

ບັນຊີລາຍຊື່ຂອງຊ່ອງສະຫນາມທີ່ຖືກແຍກອອກເປັນສີຂາວ. ໃນເວລາທີ່ກໍານົດໄວ້, gawk parses ການໃສ່ເຂົ້າໄປໃນພາກຂອງ width ຄົງທີ່, ແທນທີ່ຈະນໍາໃຊ້ມູນຄ່າຂອງຕົວແປ FS ເປັນຕົວແຍກພາກສະຫນາມ.

ຊື່​ເອ​ກະ​ສານ

ຊື່ຂອງໄຟລ໌ປະກອບປັດຈຸບັນ. ຖ້າບໍ່ມີແຟ້ມໃດ ໆ ໃນລະບົບຄໍາສັ່ງ, ຄ່າຂອງ FILENAME ຄື `` - '' ຢ່າງໃດກໍຕາມ, FILENAME ແມ່ນບໍ່ຖືກກໍານົດພາຍໃນບັ້ນ BEGIN (ເວັ້ນເສຍແຕ່ກໍານົດໂດຍ getline ).

FNR

ຫມາຍເລກບັນທຶກການເຂົ້າໃນແຟ້ມປະກອບປັດຈຸບັນ.

FS

ຕົວແຍກຂໍ້ມູນພາກສະຫນາມ, ພື້ນທີ່ໂດຍຄ່າເລີ່ມຕົ້ນ. ເບິ່ງ ພາກສະຫນາມ , ຂ້າງເທິງ.

IGNORECASE

ຄວບຄຸມຄວາມໄວໃນກໍລະນີທີ່ມີຄວາມລະອຽດອ່ອນຂອງການສະແດງອອກແລະການປະຕິບັດຊ່ອຍແນ່. ຖ້າ IGNORECASE ມີຄ່າທີ່ບໍ່ແມ່ນສູນ, ຫຼັງຈາກນັ້ນການປຽບທຽບກັບສາຍແລະໂຍບາຍຄວາມສອດຄ່ອງຂອງຮູບແບບໃນກົດລະບຽບ, ການແບ່ງເຂດຂໍ້ມູນກັບ FS , ບັນທຶກແຍກດ້ວຍ RS , ການສະແດງອອກແບບປົກກະຕິທີ່ກົງກັນກັບ ~ ແລະ ! ~ , ແລະ gensub () , gsub () , index () , ຄໍາ () , split () , ແລະ sub () ໃນທຸກໆຫນ້າທີ່ເຮັດວຽກໃນທຸກໆກໍລະນີທີ່ບໍ່ສົນໃຈໃນເວລາດໍາເນີນການປະຕິບັດຕາມປົກກະຕິ. ຫມາຍເຫດ: ການສະແດງຕາມ ລໍາດັບ ບໍ່ໄດ້ ຮັບຜົນກະທົບແລະຫນ້າທີ່ asort () .

ດັ່ງນັ້ນຖ້າ IGNORECASE ບໍ່ເທົ່າກັບສູນ, / aB / ກົງກັບສາຍທັງຫມົດ "ab" , "aB" , "Ab" ແລະ "AB" . ເຊັ່ນດຽວກັນກັບຕົວປ່ຽນແປງ AWK ທັງຫມົດ, ມູນຄ່າເບື້ອງຕົ້ນຂອງ IGNORECASE ແມ່ນສູນ, ສະນັ້ນການສະແດງອອກແບບປົກກະຕິແລະການປະຕິບັດຊ່ອຍໃຫ້ໃຊ້ໄດ້ຕາມປົກກະຕິ. ພາຍໃຕ້ Unix, ຊຸດຕົວອັກສອນ ISO- 8859-1 ພາສາລາແຕັງ 1 ຖືກນໍາໃຊ້ເມື່ອບໍ່ສົນໃຈກັບກໍລະນີ.

LINT

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

NF

ຈໍານວນຂອງເຂດໃນບັນທຶກການປະມູນປັດຈຸບັນ.

NR

ຈໍານວນທັງຫມົດຂອງບັນທຶກການປະກອບເຂົ້າມາເຖິງຕອນນັ້ນ.

OFMT

ຮູບແບບຜົນຜະລິດສໍາລັບຕົວເລກ, "% .6g" , ໂດຍຄ່າເລີ່ມຕົ້ນ.

OFS

ຕົວແຍກພາກສະຫນາມຜົນຜະລິດ, ພື້ນທີ່ໂດຍຄ່າເລີ່ມຕົ້ນ.

ORS

ຕົວແຍກຂໍ້ມູນຜົນຜະລິດ, ໂດຍຄ່າເລີ່ມຕົ້ນໃຫມ່.

PROCINFO

ອົງປະກອບຂອງຂບວນນີ້ສາມາດເຂົ້າເຖິງຂໍ້ມູນກ່ຽວກັບໂຄງການ AWK ທີ່ແລ່ນ. ໃນບາງລະບົບ, ອາດມີອົງປະກອບໃນອາເລ, "ກຸ່ມ 1" ຜ່ານ "ກຸ່ມ n " ສໍາລັບບາງ n , ເຊິ່ງເປັນຈໍານວນກຸ່ມທີ່ເພີ່ມເຕີມທີ່ມີຂະບວນການ. ໃຊ້ຕົວປະຕິບັດການໃນການທົດສອບສໍາລັບອົງປະກອບເຫຼົ່ານີ້. ອົງປະກອບດັ່ງຕໍ່ໄປນີ້ແມ່ນຮັບປະກັນໃຫ້ມີ:

PROCINFO ["egid"]

ຄ່າຂອງການ ໂທລະບົບ getegid (2).

PROCINFO ["euid"]

ຄ່າຂອງການ ໂທລະບົບ geteuid (2).

PROCINFO ["FS"]

"FS" ຖ້າຊ່ອງກະຈາຍກັບ FS ແມ່ນມີຜົນ, ຫຼື "FIELDWIDTHS" ຖ້າ ຊ່ອງກະຈາຍ ກັບ FIELDWIDTHS ມີຜົນ.

PROCINFO ["gid"]

ຄ່າຂອງການ ໂທລະບົບ getgid (2).

PROCINFO ["pgrpid"]

ID ກຸ່ມຂະບວນການຂອງຂະບວນການປະຈຸບັນ.

PROCINFO ["pid"]

ID ຂອງຂະບວນການໃນປະຈຸບັນ.

PROCINFO ["ppid"]

ID ຂອງຂະບວນການຂອງພໍ່ແມ່ຂອງຂະບວນການປະຈຸບັນ.

PROCINFO ["uid"]

ຄ່າຂອງການເອີ້ນລະບົບ getuid (2).

RS

ຕົວແຍກຂໍ້ມູນເຂົ້າ, ໂດຍຄ່າເລີ່ມຕົ້ນໃຫມ່.

RT

ການສິ້ນສຸດບັນທຶກ. Gawk ກໍານົດ RT ກັບຂໍ້ຄວາມປ້ອນຂໍ້ມູນທີ່ກົງກັບລັກສະນະຫຼືການສະແດງອອກທີ່ຖືກຕ້ອງໂດຍ RS .

RSTART

ດັດຊະນີຂອງລັກສະນະທໍາອິດທີ່ຖືກຈັບໂດຍ ຄໍາວ່າ () ; 0 ຖ້າບໍ່ມີຄໍາວ່າ. (ນີ້ຫມາຍຄວາມວ່າຕົວຊີ້ວັດລັກສະນະເລີ່ມຕົ້ນຢູ່ຫນຶ່ງ.)

RLENGTH

ຄວາມຍາວຂອງຊ່ອຍແນ່ຖືກຈັບໂດຍການຈັບຄູ່ () ; -1 ຖ້າບໍ່ມີຄໍາວ່າ.

SUBSEP

ຕົວອັກສອນທີ່ໃຊ້ເພື່ອແຍກຍ່ອຍຍ່ອຍຫຼາຍໃນອົງປະກອບອາເລ, ໂດຍຄ່າເລີ່ມຕົ້ນ "\ 034" .

TEXTDOMAIN

ໂດເມນຂໍ້ຄວາມຂອງໂຄງການ AWK; ນໍາໃຊ້ເພື່ອຊອກຫາການແປພາສາທ້ອງຖິ່ນສໍາລັບສາຍຂອງໂຄງການ.

ອາເລ

ອາເລໄດ້ຖືກສະແດງດ້ວຍການສະແດງອອກລະຫວ່າງວົງເລັບສີ່ຫລ່ຽມ ( [ ແລະ ] ). ຖ້າການສະແດງອອກເປັນລາຍການສະແດງອອກ ( expr , expr ... ), ຫຼັງຈາກນັ້ນ subscript ຂົ້ວແມ່ນສາຍທີ່ປະກອບດ້ວຍການປະສົມຂອງຄ່າ (string) ຂອງແຕ່ລະ expression, ແຍກດ້ວຍຄ່າຂອງ variable SUBSEP . ສິ່ງອໍານວຍຄວາມສະດວກນີ້ແມ່ນຖືກນໍາໃຊ້ໃນການຈໍາລອງຕາຕະລາງຂະຫນາດໃຫຍ່. ຍົກ​ຕົວ​ຢ່າງ:

i = "A" j = "B" k = "C"
x [i, j, k] = "hello, world \ n"

ກໍາຫນົດ string "hello, world \ n" ກັບອົງປະກອບຂອງ array x ທີ່ຖືກດັດສະນີໂດຍ "A \ 034B \ 034C" . ຕາຕະລາງທັງຫມົດໃນ AWK ແມ່ນການເຊື່ອມໂຍງ, ເຊັ່ນ: ດັດສະນີໂດຍມູນຄ່າຊ່ອຍແນ່.

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

ຖ້າ (val ໃນ array) print array [val]

ຖ້າ array ມີ subscript ຫຼາຍ, ໃຊ້ (i, j) ໃນ array .

ໃນການ ກໍ່ສ້າງກໍ່ອາດຈະຖືກນໍາໃຊ້ໃນວົງ ສໍາລັບ ເພື່ອເລີນເຕີບໂຕຕໍ່ກັບອົງປະກອບທັງຫມົດຂອງອາເລ.

ອົງປະກອບອາດຖືກລຶບອອກຈາກອາເລໂດຍໃຊ້ຄໍາສັ່ງ ລຶບ . ຄໍາສັ່ງ ລຶບ ອາດຈະຖືກນໍາໃຊ້ເພື່ອລຶບເນື້ອຫາທັງຫມົດຂອງອາເລ, ໂດຍການກໍານົດຊື່ຂອງອາເລທີ່ບໍ່ມີຂໍ້ມູນ subscript.

ການພິມແລະການປ່ຽນແປງຕົວແປ

ຕົວແປແລະທົ່ງນາອາດຈະເປັນຕົວເລກ (ຈຸດທີ່ເລື່ອນລອຍ), ຫຼືສາຍໄຟ, ຫຼືທັງສອງ. ວິທີການມູນຄ່າຂອງຕົວແປທີ່ຖືກຕີລາຄາແມ່ນຂຶ້ນຢູ່ກັບສະພາບຂອງມັນ. ຖ້າຖືກນໍາໃຊ້ໃນການສະແດງຈໍານວນ, ມັນຈະຖືກຖືວ່າເປັນຈໍານວນຫນຶ່ງ, ຖ້າຖືກນໍາໃຊ້ເປັນຊ່ອຍ, ມັນຈະຖືກຖືວ່າເປັນສາຍ.

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

ໃນເວລາທີ່ຊ່ອຍແນ່ຕ້ອງໄດ້ຮັບການປ່ຽນແປງເປັນຈໍານວນ, ການປ່ຽນແປງແມ່ນສໍາເລັດໂດຍໃຊ້ strtod (3). ຈໍານວນຫນຶ່ງຖືກແປງເປັນສາຍໂດຍໃຊ້ຄ່າຂອງ CONVFMT ເປັນສາຍຮູບແບບສໍາລັບ sprintf (3), ດ້ວຍຄ່າຕົວເລກຂອງຕົວແປເປັນການໂຕ້ຖຽງ. ຢ່າງໃດກໍ່ຕາມ, ເຖິງແມ່ນວ່າຈໍານວນທັງຫມົດໃນ AWK ແມ່ນ floating ຈຸດ, ຄ່າ integral ແມ່ນຖືກປ່ຽນແປງເປັນເລກເປັນ. ດັ່ງນັ້ນ, ໃຫ້

CONVFMT = "% 22f" a = 12 b = a ""

ຕົວແປ b ມີຄ່າຕົວອັກສອນຂອງ "12" ແລະບໍ່ "1200" .

Gawk ປະຕິບັດການປຽບທຽບດັ່ງຕໍ່ໄປນີ້: ຖ້າສອງຕົວແປແມ່ນຕົວເລກ, ພວກເຂົາຈະຖືກປຽບທຽບຕົວເລກ. ຖ້າມີຄ່າຫນຶ່ງແລະຈໍານວນຫນຶ່ງມີຄ່າ string ທີ່ເປັນ `` string ຕົວເລກ, '' ຫຼັງຈາກນັ້ນການປຽບທຽບຈະຖືກເຮັດໄດ້ຢ່າງສົມບູນ. ຖ້າບໍ່ດັ່ງນັ້ນ, ມູນຄ່າຈໍານວນຈະຖືກປ່ຽນແປງໄປເປັນສະຕິງແລະການປຽບທຽບຊ່ອຍແນ່ຖືກປະຕິບັດ. ສອງສາຍແມ່ນປຽບທຽບ, ແນ່ນອນ, ເປັນສາຍ. ໃຫ້ສັງເກດວ່າມາດຕະຖານ POSIX ນໍາໃຊ້ແນວຄວາມຄິດຂອງ `` ຕົວອັກສອນຕົວເລກ '' ຢູ່ທຸກບ່ອນ, ເຖິງແມ່ນວ່າຄົງທີ່ຂອງລໍາດັບ. ຢ່າງໃດກໍຕາມ, ນີ້ແມ່ນຂໍ້ມູນທີ່ບໍ່ຖືກຕ້ອງຢ່າງຊັດເຈນ, ແລະ gawk ບໍ່ເຮັດແນວນີ້. (ໂຊກດີ, ນີ້ແມ່ນການແກ້ໄຂໃນມາດຕະຖານຕໍ່ໄປ.)

ໃຫ້ສັງເກດວ່າຕົວເລກສະຕິງ, ເຊັ່ນ "57" , ບໍ່ແມ່ນ ສາຍຕົວເລກ, ພວກມັນເປັນຕົວຄູນຂອງຕົວເລກ. ຄວາມຄິດຂອງ `` ຕົວເລກສະຕິງ '' ເທົ່ານັ້ນທີ່ນໍາໃຊ້ກັບເຂດ, input input, FILENAME , ອົງປະກອບ ARGV , ອົງປະກອບ ENVIRON ແລະອົງປະກອບຂອງອາເລທີ່ສ້າງຂື້ນໂດຍການ ແບ່ງປັນ () ທີ່ມີສາຍຕົວເລກ. ຄວາມຄິດພື້ນຖານແມ່ນວ່າການ ນໍາໃຊ້ຂອງຜູ້ໃຊ້ ແລະຂໍ້ມູນຜູ້ນໍາໃຊ້ພຽງແຕ່ເບິ່ງຄືວ່າຈໍານວນຫຼາຍຄວນໄດ້ຮັບການປະຕິບັດຕາມແບບນັ້ນ.

ຕົວແປທີ່ບໍ່ໄດ້ເລີ່ມຕົ້ນມີຄ່າຈໍານວນ 0 ແລະຄ່າ string ຂອງ "" (null, or empty string).

Octal and Hexadecimal Constants

ເລີ່ມຕົ້ນດ້ວຍສະບັບ 3.1 ຂອງ gawk, ທ່ານອາດຈະໃຊ້ Constalal C-style ແລະ hexadecimal constants ໃນລະຫັດແຫຼ່ງໂຄງການ AWK ຂອງທ່ານ. ຕົວຢ່າງ, ຄ່າ octal 011 ແມ່ນເທົ່າກັບ 12 , ແລະຄ່າ hexadecimal 0x11 ເທົ່າກັບ decimal 17.

String Constants

ຕົວເລກສະຕິງໃນ AWK ແມ່ນລໍາດັບຂອງຕົວອັກສອນທີ່ຖືກປິດລົງລະຫວ່າງວົງຢືມຄູ່ ( " ). ພາຍໃນຊ່ອຍແນ່, ບາງລະ ດັບການຫນີຫນື່ງ ຖືກຮັບຮູ້ຄືກັນກັບ C. ເຫຼົ່ານີ້ແມ່ນ:

\\

A backslash ຕົວຈິງ.

\ a

ຕົວອັກສອນ `` ເຕືອນ ''; ປົກກະຕິແລ້ວຕົວອັກສອນ ASCII BEL.

\ b

backspace

\ f

ອາຫານແບບຟອມ.

\ n

newline

\ r

carriage return

\ t

ແຖບນອນ

\ v

ແຖບຕັ້ງ

\ x hex digits

ລັກສະນະທີ່ເປັນຕົວເລກໂດຍຕົວເລກຂອງເລກຖານສິບຫົກເລກດັ່ງຕໍ່ໄປນີ້ \ x . ໃນຖານະທີ່ຢູ່ໃນ ANSIC, ທັງຫມົດທີ່ຕິດຕາມເລກຖານສິບຫົກຕົວເລກດັ່ງກ່າວຖືກຖືວ່າເປັນສ່ວນຫນຶ່ງຂອງລໍາດັບຫນີ. (ລັກສະນະນີ້ຄວນບອກພວກເຮົາກ່ຽວກັບການອອກແບບພາສາໂດຍຄະນະກໍາມະການ.) ດັ່ງນັ້ນ, "\ x1B" ແມ່ນຕົວອັກສອນ ASCIIESC (escape).

\ ddd

ຕົວອັກສອນຕົວເລກໂດຍລໍາດັບ 1, 2, ຫຼື 3 ຕົວເລກຂອງເລກຖານສິບແປດ. ຕົວຢ່າງ, "\ 033" ແມ່ນຕົວອັກສອນ ASCII ESC (escape).

\ c

ຕົວອັກສອນທີ່ເປັນຕົວອັກສອນ c .

ລໍາດັບ escape ອາດຈະຖືກນໍາໃຊ້ໃນການສະແດງອອກແບບປົກກະຕິຄົງທີ່ (ຕົວຢ່າງ: / [\ t \ f \ n \ r \ v] / matches character spaces).

ໃນໂຫມດຄວາມເຂົ້າກັນໄດ້, ລັກສະນະທີ່ສະແດງໂດຍລໍາດັບ escape octal ແລະ hexadecimal ຖືກປະຕິບັດຕາມຕົວອັກສອນໃນເວລາທີ່ໃຊ້ໃນການສະແດງອອກເປັນປົກກະຕິ. ດັ່ງນັ້ນ, / a \ 52b / ແມ່ນເທົ່າກັບ / a \ * b / .

ຮູບແບບແລະການປະຕິບັດ

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

{print}

ເຊິ່ງພິມຕົວບັນທຶກທັງຫມົດ.

ຄວາມຄິດເຫັນເລີ່ມຕົ້ນດ້ວຍຕົວ `` # '', ແລະສືບຕໍ່ຈົນກ່ວາທ້າຍຂອງເສັ້ນ. ສາຍສາຍສາມາດຖືກນໍາໃຊ້ເພື່ອແຍກລາຍການ. ໂດຍປົກກະຕິແລ້ວ, ຄໍາສັ່ງສິ້ນສຸດລົງດ້ວຍ newline, ແຕ່ນີ້ບໍ່ແມ່ນກໍລະນີສໍາລັບສາຍທີ່ສິ້ນສຸດໃນ ``, '', { , ? , : , && , or || ທີ່ຢູ່ ເສັ້ນທີ່ສິ້ນສຸດໃນການ ເຮັດ ຫລື ບໍ່ ມີລາຍງານຂອງພວກເຂົາຕໍ່ໂດຍອັດຕະໂນມັດຕໍ່ເສັ້ນດັ່ງຕໍ່ໄປນີ້. ໃນກໍລະນີອື່ນໆ, ສາຍສາມາດສືບຕໍ່ໂດຍການສິ້ນສຸດມັນດ້ວຍ ', ໃນກໍລະນີທີ່ສາຍໃຫມ່ຈະຖືກລະເວັ້ນ.

ຄໍາສັ່ງຫລາຍໆອາດຈະຖືກໃສ່ໄວ້ໃນເສັ້ນດຽວໂດຍການແຍກຂໍ້ມູນທີ່ມີ `` ''; ''. ນີ້ແມ່ນໃຊ້ທັງສອງຄໍາສັບຕ່າງໆພາຍໃນສ່ວນປະຕິບັດຂອງຄູ່ແບບການປະຕິບັດງານ (ກໍລະນີປົກກະຕິ) ແລະກັບຄໍາສັ່ງປະຕິບັດຕົວເອງ.

ຮູບແບບ

ຮູບແບບ AWK ອາດເປັນຫນຶ່ງໃນດັ່ງຕໍ່ໄປນີ້:

BEGIN END / ການສະແດງອອກແບບປົກກະຕິ / ຮູບແບບ ການສະແດງຜົນທີ່ກ່ຽວຂ້ອງ && pattern pattern || pattern pattern ? ຮູບແບບ : ຮູບແບບ ( ຮູບແບບ ) ! pattern pattern1 , pattern2

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

ສໍາລັບ / ການສະແດງ / ຮູບແບບ ປົກກະຕິ , ຄໍາສັ່ງທີ່ກ່ຽວຂ້ອງແມ່ນຖືກປະຕິບັດສໍາລັບແຕ່ລະບັນທຶກການປະຕິບັດທີ່ກົງກັບການສະແດງອອກແບບປົກກະຕິ. ການສະແດງແບບປົກກະຕິແມ່ນຄືກັນກັບຕົວຢ່າງໃນ egrep (1) ແລະຖືກສະຫຼຸບຢູ່ຂ້າງລຸ່ມນີ້.

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

The && , || , ແລະ ! ການປະຕິບັດງານດັ່ງກ່າວແມ່ນມີຄວາມສົມເຫດສົມຜົນ, ຢ່າງມີເຫດຜົນ OR, ແລະຢ່າງມີເຫດຜົນບໍ່, ຕາມລໍາດັບ, ໃນ C. ພວກເຂົາເຈົ້າເຮັດການປະເມີນຜົນວົງຈອນສັ້ນ, ເຊັ່ນດຽວກັນໃນ C, ແລະຖືກນໍາໃຊ້ສໍາລັບການສົມທົບການສະແດງຕົວແບບ primitive ຫຼາຍ. ໃນຫລາຍພາສາ, ວົງເລັບອາດຖືກນໍາໃຊ້ເພື່ອປ່ຽນຄໍາສັ່ງຂອງການປະເມີນຜົນ.

ຕົວແທນ : ຄືຜູ້ປະຕິບັດງານດຽວກັນໃນ C. ຖ້າຮູບແບບທໍາອິດເປັນຄວາມຈິງແລ້ວຮູບແບບທີ່ໃຊ້ສໍາລັບການທົດສອບແມ່ນຮູບແບບທີສອງ, ຖ້າບໍ່ດັ່ງນັ້ນມັນແມ່ນທີສາມ. ພຽງແຕ່ຫນຶ່ງໃນຮູບແບບທີສອງແລະທີສາມຖືກປະເມີນ.

ແບບຟອມຮູບແບບ 1, ຮູບແບບ 2 ຂອງການສະແດງອອກແມ່ນເອີ້ນວ່າ ຮູບແບບ ຂອບເຂດ . ມັນກົງກັບບັນທຶກຂໍ້ມູນທັງຫມົດທີ່ເລີ່ມຕົ້ນດ້ວຍບັນທຶກທີ່ກົງກັບຮູບແບບ 1 ແລະສືບຕໍ່ຈົນກ່ວາບັນທຶກທີ່ກົງກັບຮູບແບບ 2, ລວມ. ມັນບໍ່ໄດ້ສົມທົບກັບການສະແດງແບບຮູບແບບອື່ນໆ.

ຕົວຢ່າງປະກະຕິ

ການສະແດງອອກແບບປົກກະຕິແມ່ນຄວາມຍາວທີ່ພົບໃນ egrep . ພວກເຂົາປະກອບດ້ວຍລັກສະນະດັ່ງຕໍ່ໄປນີ້:

c

ກົງກັບຄໍາທີ່ບໍ່ແມ່ນ metacharacter c .

\ c

ກົງກັບຕົວອັກສອນທີ່ເປັນຕົວອັກສອນ c .

ທີ່ຢູ່

ກົງກັບລັກສະນະໃດກໍ່ຕາມ, ລວມທັງສາຍ ໃຫມ່.

"

ກົງກັບຈຸດເລີ່ມຕົ້ນຂອງຊ່ອຍແນ່.

$

ກົງກັບທ້າຍຂອງຊ່ອຍແນ່.

[ abc ]

ລາຍະການຕົວອັກສອນ, ກົງກັບລັກສະນະໃດ ໆ ຂອງຕົວອັກສອນ abc

[ abc ]

ລາຍະການຕົວອັກສອນທີ່ບໍ່ຖືກຕ້ອງ, ກົງກັບລັກສະນະໃດກໍ່ໄດ້ຍົກເວັ້ນ abc ... .

r1 | r2

ການປ່ຽນແປງ: ກົງກັນຂ້າມກັບ r1 ຫຼື r2 .

r1r2

concatenation: ກົງກັບ r1 , ແລະຫຼັງຈາກນັ້ນ r2 .

r +

matches one or more r 's

r *

matches zero or more r 's

r ?

matches zero or one r 's

( r )

ກຸ່ມ: matches r

r { n }

r { n ,}

r { n , m } ຫນຶ່ງຫຼືສອງຕົວເລກຢູ່ໃນວົງເລັບຫມາຍເຖິງການ ສະແດງອອກໃນໄລຍະຫນຶ່ງ . ຖ້າມີຈໍານວນຫນຶ່ງໃນວົງເລັບ, ການສະແດງອອກເປັນປົກກະຕິກ່ອນຫນ້ານີ້ r ແມ່ນ repeated n times. ຖ້າມີສອງຕົວເລກທີ່ແຍກກັນໂດຍສະຫຼັບ, r ແມ່ນຊ້ໍາ n ເຖິງ m ເວລາ. ຖ້າມີຫນຶ່ງຈໍານວນຫນຶ່ງທີ່ຕິດຕາມໂດຍໂຄຣມ, ຫຼັງຈາກນັ້ນ r ຈະຖືກປະຕິບັດຢ່າງຫນ້ອຍ n ເທື່ອ.

ການສະແດງຂໍ້ມູນໄລຍະຫ່າງແມ່ນມີພຽງແຕ່ຖ້າວ່າ --posix ຫຼື --re- interval ແມ່ນລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງ.

\ y

ກົງກັບສາຍອັກສອນທີ່ບໍ່ຢູ່ໃນຈຸດເລີ່ມຕົ້ນຫຼືທ້າຍຂອງຄໍາ.

\ B

matches the string empty in a word

\ '

ກົງກັບສະຕິງຫວ່າງຢູ່ໃນຕອນເລີ່ມຕົ້ນຂອງຄໍາ.

\>

ກົງກັບສະຕິງທີ່ເປົ່າຢູ່ໃນຕອນທ້າຍຂອງຄໍາ.

\ w

ກົງກັບລັກສະນະຂອງຄໍາສັບໃດຫນຶ່ງ (ຕົວອັກສອນ, ຕົວເລກ, ຫລືເລິກ).

\ W

ກົງກັບລັກສະນະໃດກໍ່ຕາມທີ່ບໍ່ແມ່ນຄໍາສັບ.

\ '

ກົງກັບສະຕິງຫວ່າງຢູ່ໃນຕອນເລີ່ມຕົ້ນຂອງບັຟເຟີ (ສາຍ).

\ '

matches the string empty at the end of a buffer

ລໍາດັບ escape ທີ່ຖືກຕ້ອງໃນ string constants (ເບິ່ງຂ້າງລຸ່ມນີ້) ຍັງຖືກຕ້ອງໃນການສະແດງອອກແບບປົກກະຕິ.

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

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

[: alnum:]

ອັກຂະລະອັກສອນຕົວເລກ

[: alpha:]

ອັກຂະລະອັກສອນ

[: blank:]

ຕົວອັກສອນຊ່ອງຫລືແທັບ.

[: cntrl:]

ລັກສະນະການຄວບຄຸມ.

[: digit:]

ຕົວເລກຕົວເລກ

[: graph:]

ຕົວອັກສອນທີ່ສາມາດພິມໄດ້ແລະເບິ່ງເຫັນ. (ຊ່ອງຫວ່າງແມ່ນພິມໄດ້, ແຕ່ບໍ່ສາມາດເບິ່ງໄດ້, ໃນຂະນະທີ່ a ແມ່ນທັງສອງ.)

[: ຕ່ໍາ:]

ລັກສະນະອັກສອນແອນ້ອຍນ້ອຍ.

[: print:]

ຕົວອັກສອນທີ່ພິມໄດ້ (ລັກສະນະທີ່ບໍ່ມີການຄວບຄຸມຕົວອັກສອນ.)

[: punct:]

ຕົວອັກສອນຕົວອັກສອນ (ຕົວອັກສອນທີ່ບໍ່ແມ່ນຈົດຫມາຍ, ຕົວເລກ, ຕົວອັກສອນຄວບຄຸມຫຼືລັກສະນະຂອງຊ່ອງ).

[: space:]

ລັກສະນະຂອງຊ່ອງ (ເຊັ່ນ: ຊ່ອງ, ແຖບ, ແລະຮູບແບບຟອມ, ເພື່ອຊື່ບາງ).

[: upper:]

ຕົວອັກສອນຕົວອັກສອນຕົວອັກສອນເທິງຕົວອັກສອນ.

[: xdigit:]

ຕົວອັກສອນທີ່ມີເລກຖານສິບຫົກ.

ຕົວຢ່າງ: ກ່ອນທີ່ຈະມາດຕະຖານ POSIX, ເພື່ອໃຫ້ກົງກັບຕົວອັກສອນຕົວອັກສອນ, ທ່ານຕ້ອງຂຽນ / [A-Za-z0-9] / . ຖ້າຕົວອັກສອນຂອງທ່ານມີລັກສະນະຕົວອັກສອນອື່ນໆໃນມັນ, ມັນຈະບໍ່ເຫມາະສົມກັບພວກມັນແລະຖ້າຕົວອັກສອນຂອງທ່ານຖືກເກັບກັນແຕກຕ່າງກັນຈາກ ASCII, ນີ້ອາດຈະບໍ່ກົງກັບຕົວອັກສອນຕົວອັກສອນ ASCII. ດ້ວຍລະດັບອັກຂະລະ POSIX, ທ່ານສາມາດຂຽນ / [[: alnum:]] / , ແລະນີ້ກົງກັບອັກຂະລະອັກຂະລະແລະເລກໃນຊຸດຕົວອັກສອນຂອງທ່ານ.

ສອງລໍາດັບພິເສດເພີ່ມເຕີມສາມາດປາກົດຢູ່ໃນລາຍການຕົວອັກສອນ. ເຫຼົ່ານີ້ໃຊ້ກັບຊຸດຕົວອັກສອນທີ່ບໍ່ແມ່ນ ASCII, ເຊິ່ງສາມາດມີສັນຍາລັກດຽວ (ທີ່ເອີ້ນວ່າ ອົງປະກອບທີ່ປະສົມປະສານ ) ທີ່ມີຕົວອັກສອນຫຼາຍກວ່າຫນຶ່ງຕົວ, ເຊັ່ນດຽວກັນກັບລັກສະນະຕ່າງໆທີ່ທຽບເທົ່າກັບ ການລວບລວມ ຫຼືຄັດລອກຈຸດປະສົງ. (ຕົວຢ່າງ, ໃນພາສາຝຣັ່ງ, ເປັນ `` e '' ແລະ 'gravel-accented e` ເທົ່າກັບ).

Collating Symbols

ສັນຍາລັກທີ່ປະສົມປະສານເປັນສ່ວນປະກອບທີ່ມີລັກສະນະຫຼາຍຕົວອັກສອນທີ່ຕິດຢູ່ໃນ [. ແລະ ] . ຕົວຢ່າງ: ຖ້າ ch ເປັນອົງປະກອບ collating, ຫຼັງຈາກນັ້ນ, [[.ch.]] ເປັນການສະແດງຜົນທີ່ກົງກັນກັບສ່ວນປະກອບນີ້, ໃນຂະນະທີ່ [ch] ເປັນການສະແດງຜົນທີ່ກົງກັນກັບຄໍາວ່າ c ຫຼື h .

Equivalence Classes

ຊັ້ນຮຽນທຽບເທົ່າແມ່ນຊື່ທີ່ກ່ຽວກັບທ້ອງຖິ່ນສໍາລັບບັນຊີລາຍຊື່ຂອງລັກສະນະທີ່ທຽບເທົ່າ. ຊື່ແມ່ນຢູ່ໃນ [= ແລະ =] . ຕົວຢ່າງ: ຊື່ e ສາມາດຖືກນໍາໃຊ້ເພື່ອເປັນຕົວແທນຂອງ `` e, '`` e', '' ແລະ `` e`. '' ໃນກໍລະນີນີ້ [[= e =]] matches any of e , e ' , or e` .

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

ຜູ້ປະຕິບັດການ \ y , \ B , \ < , \> , \ w , \ W , \ ` , ແລະ \ ' ແມ່ນສະເພາະກັບ gawk ; ພວກເຂົາແມ່ນການຂະຫຍາຍໂດຍອີງໃສ່ສິ່ງອໍານວຍຄວາມສະດວກໃນຫ້ອງສະຫມຸດສະແດງອອກຂອງ GNU.

ຕົວເລືອກບັນທັດຄໍາສັ່ງຕ່າງໆຈະຄວບຄຸມວິທີ gawk ແປຄວາມຫມາຍໃນການສະແດງຜົນປະກະຕິ.

ບໍ່ມີທາງເລືອກ

ໃນກໍລະນີທີ່ເລີ່ມຕົ້ນ, gawk ສະຫນອງສະຖານທີ່ທັງຫມົດຂອງການສະແດງປົກກະຕິ POSIX ແລະການປະຕິບັດການສະແດງອອກ GNU ທີ່ຖືກກໍານົດໄວ້ຂ້າງເທິງ. ຢ່າງໃດກໍຕາມ, ການສະແດງຂໍ້ຄວາມໄລຍະບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນ.

--posix

ພຽງແຕ່ການສະແດງອອກແບບ POSIX ທີ່ຖືກສະຫນັບສະຫນູນ, ຜູ້ປະຕິບັດງານ GNU ບໍ່ໄດ້ພິເສດ. (Eg, \ w ກົງກັບຕົວຫນັງສື w ). ການສະແດງອອກໃນໄລຍະແມ່ນຖືກອະນຸຍາດ.

--traditional

ການສະແດງແບບປົກກະຕິຂອງ Unix ປະກະຕິຈະຖືກຈັບຄູ່. ຜູ້ປະຕິບັດງານ GNU ບໍ່ໄດ້ພິເສດ, ການສະແດງຂໍ້ມູນໄລຍະຫ່າງແມ່ນບໍ່ມີ, ແລະບໍ່ມີລະດັບອັກສອນ POSIX ( [[: alnum:]] ແລະອື່ນໆ. ຕົວອັກສອນທີ່ຖືກອະທິບາຍໂດຍລໍາດັບ escape octal ແລະ hexadecimal ຖືກປະຕິບັດຕາມຕົວອັກສອນ, ເຖິງແມ່ນວ່າພວກເຂົາເປັນຕົວແທນ metacharacters ການສະແດງອອກແບບປົກກະຕິ.

-re-interval

ອະນຸຍາດໃຫ້ການສະແດງອອກໃນໄລຍະການສະແດງອອກເປັນປົກກະຕິ, ເຖິງແມ່ນວ່າ --traditional ໄດ້ຖືກສະຫນອງໃຫ້.

ການກະທໍາ

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

ຜູ້ປະຕິບັດງານ

ຜູ້ປະຕິບັດງານໃນ AWK, ໃນຄໍາສັ່ງຂອງການຫຼຸດລົງກ່ອນ, ແມ່ນ

( )

Grouping

$

ການອ້າງອິງພາກສະຫນາມ.

++ -

ການເພີ່ມຂຶ້ນແລະຫຼຸດລົງ, ທັງສອງຄໍານໍາຫນ້າແລະ postfix.

"

Exponentiation ( ** ອາດຈະຖືກນໍາໃຊ້, ແລະ ** = ສໍາລັບຜູ້ປະຕິບັດຫນ້າທີ່).

+ -!

Unary plus, unary minus, and negation logical

* /%

Multiplication, division, and modulus

+ -

Addition and subtraction

space

ການເຊື່ອມໂຍງແບບອັກສອນ.

<>

<=> =

= == ຜູ້ປະກອບການທີ່ກ່ຽວຂ້ອງປົກກະຕິ.

~! ~

ການສະແດງອອກແບບປົກກະຕິ, ກົງກັນຂ້າມ. ຫມາຍເຫດ: ຢ່າໃຊ້ການສະແດງອອກແບບປົກກະຕິ ( / foo / ) ຢູ່ເບື້ອງຊ້າຍຂອງ ~ ຫຼື ! ~ . ໃຊ້ພຽງແຕ່ຫນຶ່ງທາງດ້ານຂວາມື. Expression / foo / ~ exp ມີຄວາມຫມາຍດຽວກັນກັບ (($ 0 ~ / foo /) ~ exp ) . ນີ້ແມ່ນປົກກະຕິແລ້ວ ບໍ່ແມ່ນ ສິ່ງທີ່ມີຈຸດປະສົງ.

in

Array membership

&&

Logical AND

||

Logical OR

?:

ການສະແດງອອກເງື່ອນໄຂ C ນີ້ມີຮູບແບບ expr1 ? expr2 : expr3 ຖ້າ expr1 ເປັນຄວາມຈິງ, ມູນຄ່າຂອງການສະແດງອອກແມ່ນ expr2 , ຖ້າບໍ່ດັ່ງນັ້ນມັນແມ່ນ expr3 . ພຽງແຕ່ຫນຶ່ງ expr2 ແລະ expr3 ຖືກປະເມີນຜົນ.

= + = - =

* = / =% = = ການມອບຫມາຍ ການປະຕິບັດຢ່າງແທ້ຈິງ ( var = ຄ່າ ) ແລະການປະຕິບັດການ (ຮູບແບບອື່ນໆ) ແມ່ນໄດ້ຮັບການສະຫນັບສະຫນູນ.

Control Statements

ຂໍ້ກໍານົດການຄວບຄຸມມີດັ່ງນີ້:

ຖ້າ ຄໍາສັ່ງ ( ເງື່ອນໄຂ ) [ ຄໍາ ອື່ນ ] ໃນຂະນະທີ່ ( condition ) statement ເຮັດ ຄໍາສັ່ງ ໃນຂະນະທີ່ ( condition ) ສໍາຫລັບ ( expr1 expr2 expr3 ) statement for ( var in array ) break continue delete array [ index ] delete array exit [ expression ] { statements }

I / O Statements

ງົບປະມານເຂົ້າ / ອອກແມ່ນມີດັ່ງນີ້:

ປິດ ( ໄຟລ໌ [ , ວິທີການ ] )

ປິດໄຟລ໌, ທໍ່ຫຼືຮ່ວມມືກັນ. ວິທີການທີ່ ບໍ່ຈໍາເປັນຕ້ອງໃຊ້ໃນເວລາທີ່ປິດປາຍຫນຶ່ງຂອງທໍ່ສອງທາງເທົ່າກັບການຮ່ວມມື. ມັນຕ້ອງເປັນຄ່າຊ້ໍາ, ບໍ່ວ່າຈະ "ໄປ" ຫຼື "ຈາກ" .

getline

ຕັ້ງຄ່າ $ 0 ຈາກບັນທຶກການປະມູນຕໍ່ໄປ; ຕັ້ງ NF , NR , FNR .

getline < file

ຕັ້ງຄ່າ $ 0 ຈາກບັນທຶກຕໍ່ໄປຂອງ ໄຟລ໌ ; ຕັ້ງ NF .

getline var

ຕັ້ງຄ່າ var ຈາກບັນທຶກການນໍາໃຊ້ຕໍ່ໄປ; ຕັ້ງ NR , FNR .

getline var < file

ຕັ້ງຄ່າ var ຈາກບັນທຶກຕໍ່ໄປຂອງ ໄຟລ໌ .

command | getline [ var ]

ດໍາເນີນການ ຄໍາສັ່ງ ທໍ່ສົ່ງອອກໄດ້ບໍ່ວ່າຈະເປັນ $ 0 ຫຼື var , ດັ່ງທີ່ກ່າວມາຂ້າງເທິງ.

command | & getline [ var ]

ດໍາເນີນການ ຄໍາສັ່ງ ເປັນທໍ່ຮ່ວມກັນຂະບວນການທີ່ສົ່ງອອກເຂົ້າໄປໃນ $ 0 ຫຼື var , ຂ້າງເທິງ. ການຮ່ວມມືຂະບວນການແມ່ນການຂະຫຍາຍຕົວ gawk .

ຕໍ່ໄປ

ຢຸດການປະມວນຜົນບັນທຶກການປະມູນປັດຈຸບັນ. ບັນທຶກການປະກອບຖັດໄປແມ່ນອ່ານແລະການປະມວນຜົນເລີ່ມຕົ້ນດ້ວຍຮູບແບບທໍາອິດໃນໂຄງການ AWK. ຖ້າວ່າສິ້ນສຸດຂອງຂໍ້ມູນປະກອບໄດ້ຖືກບັນລຸ, ຕັນ (s) END , ຖ້າມີ, ຖືກປະຕິບັດ.

nextfile

ຢຸດການປະມວນຜົນໄຟລ໌ຂໍ້ມູນປະຈຸບັນ. ບັນທຶກຂໍ້ມູນປະກອບຕໍ່ໄປນີ້ແມ່ນມາຈາກໄຟລ໌ປະເພດຕໍ່ໄປ. FILENAME ແລະ ARGIND ໄດ້ຖືກປັບປຸງ, FNR ຖືກປັບເປັນ 1, ແລະການປຸງແຕ່ງຈະເລີ້ມຂຶ້ນດ້ວຍຮູບແບບທໍາອິດໃນໂຄງການ AWK. ຖ້າວ່າສິ້ນສຸດຂອງຂໍ້ມູນປະກອບໄດ້ຖືກບັນລຸ, ຕັນ (s) END , ຖ້າມີ, ຖືກປະຕິບັດ.

ພິມ

ພິມການບັນທຶກປະຈຸບັນ. ບັນທຶກຜົນໄດ້ຮັບການສິ້ນສຸດດ້ວຍຄ່າຂອງຕົວແປ ORS .

ພິມ expr-list

ພິມການສະແດງອອກ. ການສະແດງອອກແຕ່ລະແມ່ນແຍກດ້ວຍມູນຄ່າຂອງຕົວແປ OFS . ບັນທຶກຜົນໄດ້ຮັບການສິ້ນສຸດດ້ວຍຄ່າຂອງຕົວແປ ORS .

ພິມ expr-list > ໄຟລ໌

ພິມການສະແດງອອກໃນ ໄຟລ໌ . ການສະແດງອອກແຕ່ລະແມ່ນແຍກດ້ວຍມູນຄ່າຂອງຕົວແປ OFS . ບັນທຶກຜົນໄດ້ຮັບການສິ້ນສຸດດ້ວຍຄ່າຂອງຕົວແປ ORS .

printf fmt, expr-list

ຮູບແບບແລະການພິມ.

printf fmt, expr-list > ໄຟລ໌

ຮູບແບບແລະພິມໃນ ໄຟລ໌ .

ລະບົບ ( cmd-line )

ປະຕິບັດຄໍາສັ່ງ cmd-line , ແລະສົ່ງຄືນສະຖານະການອອກ. (ນີ້ອາດຈະບໍ່ມີຢູ່ໃນລະບົບທີ່ບໍ່ແມ່ນ POSIX.)

fflush ( [ file ] )

ຂຸດຂີ້ເຫຍື້ອໃດໆທີ່ກ່ຽວຂ້ອງກັບໄຟລ໌ຜົນຜະລິດທີ່ເປີດຫຼື ໄຟລ໌ ທໍ່. ຖ້າຫາກວ່າ ໄຟລ໌ ແມ່ນຫາຍໄປ, ຫຼັງຈາກນັ້ນຜົນຜະລິດມາດຕະຖານແມ່ນ flushed. ຖ້າ ໄຟລ໌ ແມ່ນສາຍເຊືອກ, ຫຼັງຈາກນັ້ນໄຟລ໌ທັງຫມົດທີ່ເປີດແລະທໍ່ມີກະແສຟອງຂອງພວກເຂົາ.

ການສົ່ງຕໍ່ການສົ່ງອອກເພີ່ມເຕີມແມ່ນອະນຸຍາດສໍາລັບ ການພິມ ແລະ printf .

ພິມ >> ໄຟລ໌

ເພີ່ມຜົນຜະລິດໄປຫາ ໄຟລ໌ .

ພິມ | | ຄໍາສັ່ງ

ຂຽນກ່ຽວກັບທໍ່.

print | & command

ສົ່ງຂໍ້ມູນເຂົ້າໃນຂະບວນການຮ່ວມມື.

ຄໍາສັ່ງ getline ກັບຄືນ 0 ສຸດທ້າຍຂອງໄຟລ໌ແລະ -1 ໃນຂໍ້ຜິດພາດ. ເມື່ອມີຂໍ້ຜິດພາດ, ERRNO ມີລະຫັດທີ່ອະທິບາຍບັນຫາ.

ຫມາຍເຫດ: ຖ້າຫາກວ່າການນໍາໃຊ້ທໍ່ຫຼືຂະບວນການຮ່ວມກັນເພື່ອໃຫ້ ເສັ້ນລອກ , ຫຼືຈາກ print ຫຼື printf ພາຍໃນ loop, ທ່ານ ຕ້ອງ ໃຊ້ close () ເພື່ອສ້າງຕົວຕົນໃຫມ່ຂອງຄໍາສັ່ງ. AWK ບໍ່ອັດຕະໂນມັດປິດທໍ່ຫຼືຮ່ວມກັນໃນເວລາທີ່ພວກເຂົາກັບຄືນ EOF.

The statement printf

ສະບັບພາສາ AWK ຂອງຄໍາສັ່ງ printf ແລະ sprintf () (ເບິ່ງຂ້າງລຸ່ມນີ້) ຍອມຮັບຮູບແບບການກໍານົດການປ່ຽນແປງຕໍ່ໄປນີ້:

% c

ຕົວອັກສອນ ASCII. ຖ້າການໂຕ້ຖຽງທີ່ນໍາໃຊ້ສໍາລັບ % c ແມ່ນຕົວເລກ, ມັນຖືກຈັດການເປັນຕົວອັກສອນແລະພິມ. ຖ້າບໍ່ດັ່ງນັ້ນ, ການໂຕ້ຖຽງແມ່ນສົມມຸດວ່າຈະເປັນຊ່ອຍແນ່, ແລະມີລັກສະນະທໍາອິດຂອງຊ່ອຍແນ່ທີ່ຖືກພິມ.

% d , % i

ຈໍານວນທະສະນິຍົມ (ສ່ວນປະລິມານ).

% e,% E

ຈໍານວນຈຸດລອຍຕົວຂອງແບບຟອມ [-] ddddddde [+ -] dd . ຮູບແບບ % E ໃຊ້ E ແທນທີ່ຈະ e .

% f

ເລກທີ່ລອຍຕົວຂອງແບບຟອມ [-] ddddddddd .

% g,% G

ໃຊ້ການແປງ % e ຫຼື % f , ທີ່ນ້ອຍກວ່າ, ທີ່ມີ zeros ທີ່ບໍ່ມີປະໂຫຍດທີ່ຖືກບີບບັງຄັບ. ຮູບແບບ % G ໃຊ້ % E ແທນ % e .

% o

ຫມາຍເລກແປດທີ່ບໍ່ໄດ້ເຊັນ (ຍັງເປັນຈໍານວນເຕັມ).

% u ຫມາຍເລກທະສະນິຍົມທີ່ບໍ່ໄດ້ເຊັນ (ອີກເທື່ອຫນຶ່ງ, ເປັນຈໍານວນເຕັມ).

% s

A string character.

% x,% X

ຫມາຍເລກ hexadecimal unsigned (integer). ຮູບແບບ % X ໃຊ້ ABCDEF ແທນ abcdef .

%%

ຕົວອັກສອນດຽວ % ການໂຕ້ຖຽງບໍ່ມີການປ່ຽນແປງ.

ຕົວເລືອກ, ຕົວກໍານົດການເພີ່ມເຕີມອາດຈະຢູ່ໃນລະຫວ່າງ % ແລະຈົດຫມາຍຄວບຄຸມ:

ນັບ $

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

-

ການສະແດງອອກດັ່ງກ່າວຄວນໄດ້ຮັບການຍົກເວັ້ນໃນດ້ານຂອງມັນ.

space

ສໍາລັບການສົນທະນາຈໍານວນຫລາຍ, prefix ຄ່າບວກທີ່ມີຊ່ອງ, ແລະຄ່າລົບທີ່ມີສັນຍານລົບ.

+

ເຄື່ອງຫມາຍບວກທີ່ຖືກນໍາໃຊ້ກ່ອນດັດແກ້ width (ເບິ່ງຂ້າງລຸ່ມນີ້), ສະເຫມີວ່າສະຫນອງເຄື່ອງຫມາຍສໍາລັບການແປງຂໍ້ມູນຈໍານວນຫນຶ່ງ, ເຖິງແມ່ນວ່າຂໍ້ມູນທີ່ຈະຖືກກໍານົດເປັນບວກ. + + ແທນທີ່ດັດແປງພື້ນທີ່.

#

ໃຊ້ແບບຟອມສະລັບ `` ສໍາລັບຈົດຫມາຍຄວບຄຸມບາງຢ່າງ. ສໍາລັບ % o , ໃຫ້ເປັນສູນນໍາຫນ້າ. ສໍາລັບ % x , ແລະ % X , ໃຫ້ນໍາ 0x ຫຼື 0X ທີ່ ສໍາຄັນສໍາລັບຜົນທີ່ບໍ່ແມ່ນຜົນ. ສໍາລັບ % e , % E , ແລະ % f , ຜົນໄດ້ຮັບສະເຫມີມີຈຸດ decimal. ສໍາລັບ % g , ແລະ % G , zeros ທີ່ຕິດຕາມຍັງບໍ່ຖືກລົບອອກຈາກຜົນໄດ້ຮັບ.

0

ການນໍາ 0 (ສູນ) ເຮັດເປັນທຸງ, ເຊິ່ງສະແດງວ່າຜົນຜະລິດຄວນຈະຖືກ padded ດ້ວຍ zeroes ແທນທີ່ຈະເປັນສະຖານທີ່. ນີ້ແມ່ນໃຊ້ກັບຮູບແບບຜົນຜະລິດທີ່ບໍ່ແມ່ນຕົວເລກ. ທຸງນີ້ມີຜົນກະທົບໃນເວລາທີ່ຂະຫນາດພາກສະຫນາມກວ້າງກວ່າມູນຄ່າທີ່ຕ້ອງພິມ.

width

ພາກສະຫນາມຄວນໄດ້ຮັບການໃສ່ຝານີ້. ພາກສະຫນາມແມ່ນປົກກະຕິແລ້ວ padded ມີສະຖານທີ່. ຖ້າຫາກວ່າທຸງ 0 ຖືກນໍາໃຊ້, ມັນກໍ່ແມ່ນ padded ດ້ວຍ zeroes.

ທີ່ຢູ່ prec

ຈໍານວນທີ່ກໍານົດຄວາມຖືກຕ້ອງທີ່ຈະໃຊ້ໃນການພິມ. ສໍາລັບຮູບແບບ % e , % E ແລະ % f , ນີ້ລະບຸຈໍານວນຂອງຕົວເລກທີ່ທ່ານຕ້ອງການພິມອອກໄປທາງຂວາຂອງຈຸດສໍາຄັນ. ສໍາລັບຮູບແບບ % g , ແລະ % G , ມັນກໍານົດຈໍານວນທີ່ສູງສຸດຂອງຕົວເລກທີ່ສໍາຄັນ. ສໍາລັບຮູບແບບ % d , % o , % i , % u , % x , ແລະ % X , ມັນກໍານົດຈໍານວນຕໍາ່ສຸດທີ່ຂອງຕົວເລກເພື່ອພິມ. ສໍາລັບ % s , ມັນກໍານົດຈໍານວນຕົວອັກສອນສູງສຸດຈາກຕ່ອງໂສ້ທີ່ຄວນພິມ.

ຄວາມກວ້າງຂອງ ແບບເຄື່ອນໄຫວແລະຄວາມສາມາດທີ່ຊັດເຈນຂອງ routines ANSI C (printf () ແມ່ນສະຫນັບສະຫນູນ. A * ຢູ່ໃນສະຖານທີ່ຂອງ ຄວາມກວ້າງ ຫຼືຂໍ້ກໍານົດທີ່ແນ່ນອນຈະເຮັດໃຫ້ມູນຄ່າຂອງເຂົາເຈົ້າຖືກເອົາອອກຈາກບັນຊີການໂຕ້ຖຽງກັບ printf ຫຼື sprintf () . ການນໍາໃຊ້ຕົວຊີ້ວັດທີ່ຕັ້ງດ້ວຍຄວາມກວ້າງຫຼືຄວາມແມ່ນຍໍາແບບເຄື່ອນໄຫວ, ໃຫ້ຄໍາ ນັບ $ ຫຼັງຈາກ * ໃນຮູບແບບຂອງຮູບແບບ. ຕົວຢ່າງ, "% 3 $ * 2 $. * 1 $ s" .

ຊື່ໄຟລ໌ພິເສດ

ໃນເວລາທີ່ເຮັດການສົ່ງຕໍ່ I / O ຈາກ ການພິມ ຫຼື printf ເຂົ້າໄປໃນໄຟລ໌ໃດຫນຶ່ງ, ຫຼືຜ່ານ getline ຈາກໄຟລ໌, gawk ຮັບຮູ້ບາງໄຟລ໌ຊື່ພິເສດຕ່າງໆພາຍໃນ. ຊື່ໄຟລ໌ເຫຼົ່ານີ້ອະນຸຍາດໃຫ້ເຂົ້າເຖິງລາຍລະອຽດຂອງໄຟລ໌ທີ່ເປີດເຜີຍຈາກຂະບວນການຂອງພໍ່ແມ່ຂອງ gawk (ປົກກະຕິແລ້ວແກະ). ຊື່ໄຟລ໌ເຫຼົ່ານີ້ອາດຈະຖືກນໍາໃຊ້ໃນເສັ້ນຄໍາສັ່ງເພື່ອຊື່ໄຟລ໌ຂໍ້ມູນ. ຊື່ໄຟລ໌ແມ່ນ:

/ dev / stdin

ປ້ອນຂໍ້ມູນມາດຕະຖານ.

/ dev / stdout

ຜົນຜະລິດມາດຕະຖານ.

/ dev / stderr

ຜະລິດຕະພັນຜິດພາດມາດຕະຖານ.

/ dev / fd / n

ໄຟລ໌ທີ່ກ່ຽວຂ້ອງກັບລະບົບປະມວນຜົນໄຟລ໌ທີ່ເປີດຢູ່ n .

ເຫຼົ່ານີ້ແມ່ນມີຜົນປະໂຫຍດໂດຍສະເພາະສໍາລັບຂໍ້ຄວາມຜິດພາດ. ຍົກ​ຕົວ​ຢ່າງ:

ພິມ "ທ່ານຟ້າວ!" > "/ dev / stderr"

ໃນຂະນະທີ່ທ່ານກໍ່ຈະຕ້ອງໃຊ້

ພິມ "ທ່ານຟ້າວ!" | "cat 1> & 2"

ຊື່ໄຟລ໌ພິເສດດັ່ງຕໍ່ໄປນີ້ອາດຈະຖືກນໍາໃຊ້ກັບຜູ້ໃຊ້ | & ຜູ້ປະສານງານຮ່ວມກັນໃນການສ້າງການເຊື່ອມຕໍ່ເຄືອຂ່າຍ TCP / IP.

/ inet / tcp / lport / rhost / rport

ໄຟລ໌ສໍາລັບການເຊື່ອມຕໍ່ TCP / IP ໃນ port port ທ້ອງຖິ່ນກັບ rhost host ຫ່າງໄກສອກຫຼີກກ່ຽວກັບ rport port ຫ່າງໄກສອກຫຼີກ. ໃຊ້ພອດ 0 ເພື່ອໃຫ້ລະບົບເອົາພອດ.

/ inet / udp / lport / rhost / rport

ຄ້າຍຄືກັນ, ແຕ່ໃຊ້ UDP / IP ແທນ TCP / IP.

/ inet / raw / lport / rhost / rport

ສະຫງວນສໍາລັບການນໍາໃຊ້ໃນອະນາຄົດ.

ຊື່ໄຟລ໌ພິເສດອື່ນໆໃຫ້ການເຂົ້າເຖິງຂໍ້ມູນຂ່າວສານກ່ຽວກັບຂະບວນການປະຕິບັດງານ. ຊື່ໄຟລ໌ເຫຼົ່ານີ້ແມ່ນຫມົດແລ້ວ. ໃຊ້ແຖວ PROCINFO ເພື່ອໃຫ້ໄດ້ຂໍ້ມູນທີ່ພວກເຂົາໃຫ້. ຊື່ໄຟລ໌ແມ່ນ:

/ dev / pid

ການອ່ານໄຟລ໌ນີ້ຈະສົ່ງຄືນ ID ຂອງຂະບວນການໃນປັດຈຸບັນ, ໃນທະສະນິຍົມ, ສິ້ນສຸດດ້ວຍເສັ້ນທາງໃຫມ່.

/ dev / ppid

ການອ່ານໄຟລ໌ນີ້ຈະສົ່ງຄືນ ID ຂອງຂະບວນການຂອງພໍ່ແມ່ຂອງຂະບວນການໃນປັດຈຸບັນ, ໃນທະສະນິຍົມ, ສິ້ນສຸດດ້ວຍເສັ້ນໃຫມ່.

/ dev / pgrpid

ການອ່ານໄຟລ໌ນີ້ຈະສົ່ງຄືນ ID ກຸ່ມຂະບວນການຂອງຂະບວນການໃນປະຈຸບັນ, ໃນທະສະນິຍົມ, ສິ້ນສຸດດ້ວຍເສັ້ນທາງໃຫມ່.

/ dev / user

ການອ່ານໄຟລ໌ນີ້ຈະສົ່ງຄືນບັນທຶກດຽວທີ່ຖືກຍົກເລີກດ້ວຍສາຍໃຫມ່. ທົ່ງນາທີ່ຖືກແຍກດ້ວຍຊ່ອງຫວ່າງ. $ 1 ແມ່ນມູນຄ່າຂອງການ ໂທລະບົບ getuid (2), $ 2 ແມ່ນມູນຄ່າຂອງການ ໂທລະບົບ geteuid (2), $ 3 ແມ່ນມູນຄ່າຂອງການ ໂທລະບົບ getgid (2), ແລະ $ 4 ແມ່ນມູນຄ່າຂອງ getegid (2) ໂທລະບົບ. ຖ້າມີເຂດຂໍ້ມູນເພີ່ມເຕີມ, ພວກເຂົາແມ່ນ ID ກຸ່ມທີ່ສົ່ງຄືນໂດຍ ກຸ່ມ getgroups (2). ກຸ່ມຫຼາຍໆອາດຈະບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນໃນລະບົບທັງຫມົດ.

Numeric Functions

AWK ມີການປະຕິບັດຕົວເລກປະຈໍາຕົວດັ່ງຕໍ່ໄປນີ້:

atan2 ( y , x )

ສົ່ງກັບ arctangent ຂອງ y / x ໃນ radians.

cos ( expr )

ກັບຄືນ cosine ຂອງ expr , ຊຶ່ງຢູ່ໃນ radians.

exp ( expr )

ຟັງຊັນຂອງສະມະການ

int ( expr )

Truncates to integer

log ( expr )

ຟັງຊັນ logarithm ທໍາມະຊາດ.

rand ()

Returns a number random between 0 and 1

sin ( expr )

ສົ່ງຄືນ sine ຂອງ expr ເຊິ່ງຢູ່ໃນ radians.

sqrt ( expr )

ຟັງຊັນຮາກຮຽບຮ້ອຍ.

srand ( [ expr ] )

ໃຊ້ expr ເປັນແກ່ນໃຫມ່ສໍາລັບການຜະລິດຈໍານວນ Random. ຖ້າບໍ່ມີການສະແດງໃຫ້ເຫັນ, ເວລາຂອງມື້ຈະຖືກນໍາໃຊ້. ມູນຄ່າຜົນຕອບແທນແມ່ນແກ່ນທີ່ຜ່ານມາສໍາລັບຜູ້ຜະລິດຈໍານວນ Random.

Functions String

Gawk ມີຫນ້າທີ່ຊ່ອຍແນ່ໃນການກໍ່ສ້າງຕໍ່ໄປນີ້:

asort ( s [ , d ] )

ກັບຄືນຈໍານວນຂອງອົງປະກອບໃນແຖວແຫຼ່ງ. ເນື້ອຫາຂອງ s ກໍາລັງຖືກຈັດຮຽງໂດຍໃຊ້ກົດລະບຽບປົກກະຕິຂອງ gawk ສໍາລັບຄ່າປຽບທຽບແລະດັດສະນີຂອງຄ່າທີ່ຖືກຄັດຂອງ s ຖືກແທນທີ່ດ້ວຍຈໍານວນເຕັມເລກລໍາດັບເລີ່ມຕົ້ນດ້ວຍ 1. ຖ້າຫາກວ່າ array array destination d ຖືກກໍານົດ, ຫຼັງຈາກນັ້ນ s ແມ່ນ duplicated ຄັ້ງທໍາອິດໃນ d , ແລະຫຼັງຈາກນັ້ນ d ແມ່ນຈັດຮຽງ, ຊຶ່ງເຮັດໃຫ້ດັດນີຂອງແຖວແຫຼ່ງ ທີ່ ບໍ່ມີການປ່ຽນແປງ.

gensub ( r , s , h [ , t ] )

ຄົ້ນຫາຊ່ອຍແນ່ທີ່ກໍານົດໄວ້ສໍາລັບການກົງກັນຂອງການສະແດງອອກປະກະຕິ r . ຖ້າ h ແມ່ນ string ທີ່ເລີ່ມຕົ້ນດ້ວຍ g ຫຼື G , ຫຼັງຈາກນັ້ນແທນທີ່ຈະກົງກັນກັບ r ກັບ s . ຖ້າບໍ່ດັ່ງນັ້ນ, h ເປັນຈໍານວນທີ່ຊີ້ໃຫ້ເຫັນວ່າການແຂ່ງຂັນຂອງ r ເພື່ອທົດແທນ. ຖ້າບໍ່ໄດ້ສະຫນອງໃຫ້, $ 0 ຈະຖືກນໍາໃຊ້ແທນ. ພາຍໃນຂໍ້ຄວາມທີ່ທົດແທນ, ລໍາດັບ \ n , ບ່ອນທີ່ n ເປັນຕົວເລກຈາກ 1 ຫາ 9, ອາດຈະຖືກນໍາໃຊ້ເພື່ອຊີ້ໃຫ້ເຫັນຂໍ້ຄວາມທີ່ກົງກັນກັບຄໍາສັ່ງ subexpression ຍັບຍັ້ງ. ລໍາດັບ \ 0 ສະ ແດງຂໍ້ຄວາມທັງຫມົດທີ່ຖືກຈັບຄູ່ກັນ, ເຊັ່ນດຽວກັນກັບລັກສະນະ & . ບໍ່ແຕກຕ່າງຈາກ sub () ແລະ gsub () , ສາຍອັກສອນທີ່ຖືກດັດແກ້ຖືກສົ່ງຄືນມາເປັນຜົນມາຈາກການເຮັດວຽກແລະ ບໍ່ໄດ້ ປ່ຽນຊ່ອຍແນ່ເປົ້າຫມາຍຕົ້ນສະບັບ.

gsub ( r , s [ , t ] )

ສໍາລັບແຕ່ລະ substring ທີ່ສອດຄ່ອງກັບການສະແດງອອກປົກກະຕິ r ໃນ string t , ແທນ string s , ແລະສົ່ງຄືນຈໍານວນຂອງການທົດແທນ. ຖ້າບໍ່ໄດ້ຮັບ, ໃຫ້ໃຊ້ $ 0 . & ໃນຂໍ້ຄວາມທີ່ທົດແທນຖືກແທນທີ່ດ້ວຍຂໍ້ຄວາມທີ່ຖືກຈັບຄູ່ກັນ. ໃຊ້ \ & ເພື່ອໃຫ້ຮູ້ຕົວ (ນີ້ຕ້ອງຖືກພິມເປັນ "\\ &" ເບິ່ງ GAWK: Programming AWK ທີ່ມີປະສິດທິພາບ ສໍາລັບການສົນທະນາທີ່ເຕັມໄປດ້ວຍກົດລະບຽບຂອງ && ແລະ backslashes ໃນຂໍ້ຄວາມແທນຂອງ sub () , gsub () , ແລະ gensub ()) .

ດັດຊະນີ ( s , t )

ກັບຄືນມາດັດຊະນີຂອງຊ່ອຍແນ່ t ໃນຊ່ອຍແນ່, ຫຼື 0 ຖ້າບໍ່ມີ. (ນີ້ຫມາຍຄວາມວ່າຕົວຊີ້ວັດລັກສະນະເລີ່ມຕົ້ນຢູ່ຫນຶ່ງ.)

ຄວາມຍາວ ( [ s ] )

ຄືນຄວາມຍາວຂອງຊ່ອຍແນ່ , ຫຼືຄວາມຍາວຂອງ $ 0 ຖ້າບໍ່ໄດ້ຖືກສະຫນອງໃຫ້.

ການແຂ່ງຂັນ ( s , r [ , a ] )

Returns position in s where expression r normally occurs, or 0 if r is not present, and set values ​​of RSTART and RLENGTH ໃຫ້ສັງເກດວ່າຄໍາສັ່ງການໂຕ້ຖຽງຄືກັນກັບສໍາລັບ ~ operator: str ~ re . ຖ້າອາເລຖືກສະຫນອງ, a ແມ່ນຖືກເກັບກູ້ແລະຫຼັງຈາກນັ້ນອົງປະກອບ 1 ຫາ n ແມ່ນເຕັມໄປດ້ວຍສ່ວນຂອງ s ທີ່ສອດຄ້ອງກັບ subexpression ທີ່ສອດຄ້ອງກັນໃນ r . ອົງປະກອບຂອງ 0 'ສ່ວນປະກອບຂອງ ສ່ວນ ປະກອບຂອງ s ປະກອບດ້ວຍສ່ວນປະກອບຂອງ ການ ປະສົມປະສານປົກກະຕິທັງຫມົດ r .

ແບ່ງປັນ ( s , a [ , r ] )

ແບ່ງປັນຊ່ອຍແນ່ເຂົ້າໃນອາເລຢູ່ໃນການສະແດງອອກປົກກະຕິ r ແລະສົ່ງຄືນຈໍານວນຂອງທົ່ງນາ. ຖ້າ r ຖືກຍົກເລີກ, FS ຖືກນໍາໃຊ້ແທນ. ອາເລໄດ້ຖືກເກັບກູ້ກ່ອນ. ການແບ່ງປັນມີລັກສະນະດຽວກັນກັບການແບ່ງເຂດຂໍ້ມູນ, ອະທິບາຍຂ້າງເທິງ.

sprintf ( fmt , expr-list )

ພິມ expr-list ອີງໃສ່ fmt , ແລະສົ່ງກັບຄືນໄປບ່ອນສະຕິງຜົນ.

strtonum ( str )

ກວດສອບ str , ແລະສົ່ງຄືນຄ່າຕົວເລກຂອງມັນ. ຖ້າ str ເລີ່ມຕົ້ນດ້ວຍ 0 , strtonum () ຄາດວ່າ str ແມ່ນຫມາຍເລກແປດ. ຖ້າ str ເລີ່ມຕົ້ນດ້ວຍ 0x ຫຼື 0X ນໍາ , strtonum () ຄາດວ່າ str ແມ່ນເລກ hexadecimal.

sub ( r , s [ , t ] )

ເຊັ່ນດຽວກັນກັບ gsub () , ແຕ່ວ່າແຕ່ substring ເທົ່ານັ້ນທີ່ຖືກ ໂຍກຍ້າຍ ເທົ່ານັ້ນ.

substr ( s , i [ , n ] )

Returns the at most n- character substring of s starting at i ຖ້າ n ຖືກຍົກເລີກ, ສ່ວນທີ່ເຫຼືອຂອງ s ຈະຖືກນໍາໃຊ້.

tolower ( str )

ສົ່ງຄືນສໍາເນົາ str str string, ດ້ວຍຕົວອັກສອນເທິງຕົວອັກສອນທັງຫມົດໃນ str ຖືກແປໄປຫາຄູ່ຮ່ວມງານທີ່ມີຄ່ານ້ອຍກວ່າ. ຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວອັກສອນແມ່ນບໍ່ປ່ຽນແປງ.

toupper ( str )

ສົ່ງຄືນສໍາເນົາຂອງ str string, ທັງຫມົດທີ່ມີລັກສະນະຂອງ case- lowercase ໃນ str ຖືກແປໄປຫາຄູ່ຮ່ວມງານຂອງ upper-case ທີ່ສອດຄ້ອງກັນ. ຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວອັກສອນແມ່ນບໍ່ປ່ຽນແປງ.

ເວລາເຮັດວຽກ

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

mktime ( datespec )

ເຄື່ອງຫມາຍ ຂີດ ຕໍ່ຄໍາສັບເວລາສຸດທ້າຍໃນຮູບແບບດຽວກັບກັບ systime () . Datespec ແມ່ນສາຍຂອງຮູບແບບ YYYY MM DD HH MM SS [DST] . ເນື້ອຫາຂອງຊ່ອຍແນ່ແມ່ນຫົກຫຼືເຈັດຕົວເລກທີ່ຫມາຍເຖິງປີເຕັມເຊິ່ງລວມທັງສະຕະວັດ, ເດືອນຈາກ 1 ເຖິງ 12, ວັນຂອງເດືອນຈາກ 1 ເຖິງ 31, ຊົ່ວໂມງຂອງມື້ຈາກ 0 ຫາ 23, ນາທີຈາກ 0 ຫາ 59, ແລະທີສອງຈາກ 0 ຫາ 60, ແລະເປັນຕົວເລືອກປະຈໍາວັນປະຈໍາວັນ. ຄ່າຂອງຈໍານວນເຫຼົ່ານີ້ບໍ່ຈໍາເປັນຕ້ອງຢູ່ພາຍໃນຂອບເຂດທີ່ລະບຸໄວ້; ຕົວຢ່າງ, ຊົ່ວໂມງ -1 ຫມາຍຄວາມວ່າ 1 ຊົ່ວໂມງກ່ອນກາງຄືນ. ປະຕິທິນ Gregorian ຕົ້ນກໍາເນີດແມ່ນສົມມຸດ, ມີປີ 0 ປີກ່ອນປີ 1 ແລະປີ -1 ກ່ອນຫນ້າປີ 0. ເວລາທີ່ຄາດວ່າຈະຢູ່ໃນເຂດເວລາທ້ອງຖິ່ນ. ຖ້າຫາກວ່າທຸງເງິນປະຫຍັດເວລາກາງວັນແມ່ນບວກ, ເວລາຈະຖືກຄິດໄລວ່າເປັນເວລາປະຢັດເວລາກາງເວັນ; ຖ້າບໍ່, ເວລາຈະຖືກຄາດວ່າຈະເປັນເວລາມາດຕະຖານ; ແລະຖ້າທາງລົບ (ຄ່າເລີ່ມຕົ້ນ), mktime () ພະຍາຍາມທີ່ຈະກໍານົດວ່າເວລາປະຫຍັດເວລາກາງຄືນມີຜົນບັງຄັບໃຊ້ໃນເວລາໃດ. ຖ້າ datepec ບໍ່ມີອົງປະກອບທີ່ພຽງພໍຫຼືຖ້າເວລາທີ່ອອກມາຢູ່ໃນລະດັບ, mktime () ຄືນ -1.

strftime ( [ format [ , timestamp ]] )

Timestamp ຮູບແບບຕາມການກໍານົດໄວ້ໃນ ຮູບແບບ. timestamp ຄວນມີຮູບແບບດຽວກັນກັບຄືນມາໂດຍ systime () . ຖ້າຫາກວ່າ timestamp ແມ່ນຫາຍໄປ, ໃຊ້ເວລາປະຈຸບັນໃນມື້ນີ້. ຖ້າ ຮູບແບບ ທີ່ຂາດຫາຍໄປແລ້ວ, ຮູບແບບທີ່ ຖືກຕ້ອງຄືກັບຜົນຂອງ ວັນທີ (1) ຖືກນໍາໃຊ້. ເບິ່ງຂໍ້ກໍານົດສໍາລັບຟັງຊັນ strftime () ໃນ ANSI C ສໍາລັບການແປງຮູບແບບທີ່ມີການຮັບປະກັນໃຫ້ມີຢູ່. ສະບັບພາສາໂດເມນຂອງ strftime (3) ແລະຫນ້າຜູ້ຊາຍສໍາລັບມັນມາພ້ອມກັບ gawk ; ຖ້າຫາກວ່າສະບັບນີ້ຖືກນໍາໃຊ້ເພື່ອສ້າງເຄື່ອງມື, ຫຼັງຈາກນັ້ນທັງຫມົດຂອງການສົນທະນາທີ່ໄດ້ອະທິບາຍໄວ້ໃນຫນ້າຜູ້ຊາຍທີ່ມີຢູ່ນັ້ນຈະມີຢູ່ .

systime ()

ຄືນວັນເວລາປັດຈຸບັນເປັນຈໍານວນວິນາທີນັບຕັ້ງແຕ່ Epoch (1970-01-01 00:00:00 UTC ໃນລະບົບ POSIX).

Bit Functions Functions

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

ແລະ ( v1 , v2 )

ສົ່ງຄືນຄວາມໄວຂອງ AND ຂອງມູນຄ່າທີ່ສະຫນອງໃຫ້ໂດຍ v1 ແລະ v2 .

compl ( val )

ກັບຄືນໄປບ່ອນທີ່ສົມບູນຂອງ bit ຂອງ val .

lshift ( val , count )

ຄືນມູນຄ່າຂອງ val , ຊ້າຍ left by count bits.

ຫລື ( v1 , v2 )

ສົ່ງກັບຄືນໄປບ່ອນຂອງ bitwise OR ຂອງຄ່າທີ່ສະຫນອງໃຫ້ໂດຍ v1 ແລະ v2 .

rshift ( val , count )

ຄືນມູນຄ່າຂອງ val , ຖືກໂອນສິດໂດຍ ນັບ bits.

xor ( v1 , v2 )

ສົ່ງກັບ XOR bitwise ຂອງຄ່າທີ່ສະຫນອງໃຫ້ໂດຍ v1 ແລະ v2 .

ສາກົນການເຮັດວຽກ

ເລີ່ມຕົ້ນດ້ວຍສະບັບ 3.1 ຂອງ gawk , ຫນ້າທີ່ດັ່ງຕໍ່ໄປນີ້ອາດຈະຖືກນໍາໃຊ້ຈາກພາຍໃນໂຄງການ AWK ຂອງທ່ານສໍາລັບການແປສາຍໃນໄລຍະເວລາ. ສໍາລັບລາຍລະອຽດເຕັມ, ເບິ່ງ GAWK: Programming AWK ທີ່ມີປະສິດຕິພາບ .

bindtextdomain ( directory [ , domain ] )

ລະບຸໄດເລກະທໍລີບ່ອນທີ່ gawk ເບິ່ງຫາໄຟລ໌ .mo , ໃນກໍລະນີທີ່ພວກເຂົາຈະບໍ່ຫຼືບໍ່ສາມາດຖືກຈັດໃສ່ໃນສະຖານທີ່ `` ມາດຕະຖານ '' (ເຊົ່ນໃນລະຫວ່າງການທົດສອບ). ມັນຈະສົ່ງຄືນໄດເລັກທໍລີທີ່ ໂດເມນ ແມ່ນ `` ຜູກມັດ. ''

ໂດເມນທີ່ ຖືກຕ້ອງແມ່ນມູນຄ່າຂອງ TEXTDOMAIN . ຖ້າ ໄດເລກະທໍລີ ເປັນ null string ( "" ) ແລ້ວ bindtextdomain () ຄືນຜົນບັງຄັບໃຊ້ປັດຈຸບັນສໍາຫລັບ ໂດເມນທີ່ ໃຫ້

dcgettext ( string [ , domain [ , category ]] )

ສົ່ງຄືນການແປຂອງ ສະຕິງ ໃນໂດ ເມນໂດເມນໂດເມນ ສໍາລັບປະເພດຫມວດທ້ອງຖິ່ນ. ຄ່າເລີ່ມຕົ້ນສໍາລັບ ໂດເມນ ແມ່ນຄ່າຂອງ TEXTDOMAIN ໃນປະຈຸບັນ. ຄ່າເລີ່ມຕົ້ນສໍາລັບ ປະເພດ ແມ່ນ "LC_MESSAGES" .

ຖ້າທ່ານສະຫນອງຄ່າສໍາລັບ ປະເພດ , ມັນຕ້ອງເປັນສາຍທີ່ເທົ່າກັບຫນຶ່ງໃນປະເພດທີ່ຮູ້ຈັກໃນທ້ອງຖິ່ນທີ່ໄດ້ອະທິບາຍໄວ້ໃນ GAWK: Programming AWK ທີ່ມີປະສິດຕິພາບ . ທ່ານຍັງຕ້ອງໄດ້ສະຫນອງຊື່ໂດເມນທີ່ເປັນຂໍ້ຄວາມ. ໃຊ້ TEXTDOMAIN ຖ້າທ່ານຕ້ອງການໃຊ້ໂດເມນປັດຈຸບັນ.

dcngettext ( string1 , string2 , number [ , domain [ , category ]] )

ສົ່ງຟອມແບບຟອມໃຊ້ສໍາລັບ ຈໍານວນ ຂອງການແປຂອງ string1 ແລະ string2 ໃນໂດເມນໂດເມນຂໍ້ຄວາມສໍາລັບປະເພດປະເພດທ້ອງຖິ່ນ. ຄ່າເລີ່ມຕົ້ນສໍາລັບ ໂດເມນ ແມ່ນຄ່າຂອງ TEXTDOMAIN ໃນປະຈຸບັນ. ຄ່າເລີ່ມຕົ້ນສໍາລັບ ປະເພດ ແມ່ນ "LC_MESSAGES" .

ຖ້າທ່ານສະຫນອງຄ່າສໍາລັບ ປະເພດ , ມັນຕ້ອງເປັນສາຍທີ່ເທົ່າກັບຫນຶ່ງໃນປະເພດທີ່ຮູ້ຈັກໃນທ້ອງຖິ່ນທີ່ໄດ້ອະທິບາຍໄວ້ໃນ GAWK: Programming AWK ທີ່ມີປະສິດຕິພາບ . ທ່ານຍັງຕ້ອງໄດ້ສະຫນອງຊື່ໂດເມນທີ່ເປັນຂໍ້ຄວາມ. ໃຊ້ TEXTDOMAIN ຖ້າທ່ານຕ້ອງການໃຊ້ໂດເມນປັດຈຸບັນ.

ປະຕິບັດງານຜູ້ໃຊ້ທີ່ກໍານົດ

ຟັງຊັນໃນ AWK ຖືກກໍານົດດັ່ງຕໍ່ໄປນີ້:

ຊື່ ຟັງຊັນ ( ພາລາມິເຕີລາຍະການ ) { statements }

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

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

function f (p, q, a, b) # a ແລະ b ແມ່ນ local {... } / abc / {... ; f (1, 2) }

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

ຟັງຊັນສາມາດໂທຫາເຊິ່ງກັນແລະກັນແລະອາດຈະຖືກເອີ້ນຄືນ. ຕົວກໍານົດການເຮັດວຽກທີ່ນໍາໃຊ້ເປັນຕົວແປທ້ອງຖິ່ນແມ່ນເລີ່ມຕົ້ນໃນສະຕິງ null ແລະເລກທີ່ສູນຫຼັງຈາກການເອີ້ນການເອີ້ນ.

ໃຊ້ return expr ເພື່ອຄືນມູນຄ່າຈາກຟັງຊັນ. ມູນຄ່າຜົນຕອບແທນແມ່ນບໍ່ໄດ້ກໍານົດຖ້າບໍ່ມີມູນຄ່າ, ຫຼືຖ້າຟັງຊັນຄືນຍ້ອນ `` ລົ້ມລົງ ''.

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

ຟັງຊັ່ນ func ອາດຈະຖືກນໍາໃຊ້ແທນທີ່ຈະ ເຮັດວຽກ .

DYNAMICALLY LOADING NEW FUNCTIONS

ເລີ່ມຕົ້ນດ້ວຍສະບັບ 3.1 ຂອງ gawk , ທ່ານສາມາດເພີ່ມຫນ້າປະຕິບັດໃຫມ່ໃນການປະຕິບັດຫນ້າທີ່ໃຫ້ກັບນາຍແປພາສາທີ່ກໍາລັງແລ່ນ. ລາຍລະອຽດທັງຫມົດແມ່ນເກີນຂອບເຂດຂອງຫນ້າຄູ່ມືນີ້; ເບິ່ງ GAWK: Programming AWK ທີ່ມີປະສິດຕິພາບ ສໍາລັບລາຍລະອຽດ.

extension ( object , function )

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

ຟັງຊັນນີ້ໄດ້ຖືກສະຫນອງໃຫ້ແລະຖືກບັນທຶກໄວ້ໃນ GAWK: Programming AWK ທີ່ມີປະສິດຕິພາບ , ແຕ່ທຸກສິ່ງທຸກຢ່າງກ່ຽວກັບລັກສະນະນີ້ອາດມີການປ່ຽນແປງໃນການປ່ອຍຕໍ່ໄປ. ພວກເຮົາ STRONGLY ແນະນໍາໃຫ້ທ່ານບໍ່ໃຊ້ຄຸນສົມບັດນີ້ສໍາລັບສິ່ງໃດທີ່ທ່ານບໍ່ເຕັມໃຈທີ່ຈະປະຕິເສດ.

SIGNALS

pgawk ຍອມຮັບສອງສັນຍານ. SIGUSR1 ເຮັດໃຫ້ມັນຖິ້ມຂໍ້ມູນໂປຼ ແກຼມໂປຼແກຼມໂປຼແກມໂປຼແກຼມໂປຼແກຼມໂປຼແກຼມ , ເຊິ່ງທັງນີ້ແມ່ນ awkprof.out , ຫຼືໄຟລ໌ໃດກໍ່ຕາມທີ່ມີຊື່ວ່າ --profile . ຫຼັງຈາກນັ້ນມັນຍັງສືບຕໍ່ດໍາເນີນການ. SIGHUP ເຮັດໃຫ້ມັນ dump ປະຫວັດແລະໂທປະຕິບັດການ stack ແລະຫຼັງຈາກນັ້ນອອກ.

ຕົວຢ່າງ

ພິມແລະຈັດຮຽງຊື່ເຂົ້າສູ່ລະບົບຂອງຜູ້ໃຊ້ທັງຫມົດ: BEGIN {FS = ":"} {print $ 1 | "ຈັດລຽງ"} ນັບເສັ້ນໃນແຟ້ມ: {nlines ++} END {print nlines} ກ່ອນທີ່ ແຕ່ລະເສັ້ນໂດຍຈໍານວນຂອງມັນໃນແຟ້ມ: {print FNR, $ 0} Concatenate and number line (variation on a theme): {print NR, $ 0}

Internalization

Constants constants ເປັນລໍາດັບຂອງຕົວອັກສອນທີ່ຢູ່ໃນວົງຢືມຄູ່. ໃນສະພາບແວດລ້ອມທີ່ບໍ່ແມ່ນພາສາອັງກິດ, ມັນເປັນໄປໄດ້ທີ່ຈະຫມາຍສາຍໃນໂຄງການ AWK ທີ່ຕ້ອງການການແປພາສາທໍາມະຊາດ. ສາຍດັ່ງກ່າວແມ່ນຫມາຍໃນໂຄງການ AWK ທີ່ມີເສັ້ນທາງສັນຖານອັນດັບຫນຶ່ງ (`` _ ''). ຍົກ​ຕົວ​ຢ່າງ,

gawk 'BEGIN {print "hello, world"}'

ສະເຫມີພິມ ສະບາຍດີ, ໂລກ . ແຕ່ວ່າ,

gawk 'BEGIN {print _ "hello, world"}'

ອາດຈະພິມ bonjour, ໂລກ ໃນປະເທດຝຣັ່ງ.

ມີຂັ້ນຕອນຈໍານວນຫນຶ່ງທີ່ກ່ຽວຂ້ອງໃນການຜະລິດແລະການດໍາເນີນໂຄງການ AWK ທີ່ສາມາດປັບປຸງໄດ້.

1

ເພີ່ມກິດຈະກໍາ BEGIN ເພື່ອກໍາຫນົດຄ່າກັບຕົວແປ TEXTDOMAIN ເພື່ອຕັ້ງໂດເມນຂໍ້ຄວາມໃຫ້ເປັນຊື່ທີ່ກ່ຽວຂ້ອງກັບໂປລແກລມຂອງທ່ານ.


BEGIN {TEXTDOMAIN = "myprog"}

ນີ້ອະນຸຍາດໃຫ້ gawk ເພື່ອຊອກຫາໄຟລ໌ .mo ທີ່ກ່ຽວຂ້ອງກັບໂຄງການຂອງທ່ານ. ໂດຍບໍ່ມີຂັ້ນຕອນນີ້, gawk ໃຊ້ໂດເມນຂໍ້ຄວາມຂໍ້ຄວາມ, ຊຶ່ງອາດຈະບໍ່ມີການແປສໍາລັບໂຄງການຂອງທ່ານ.

2

ຫມາຍເອົາຊ່ອຍແນ່ທັງຫມົດທີ່ຄວນຈະຖືກແປດ້ວຍການຊີ້ນໍາທີ່ສໍາຄັນ.

3

ຖ້າຈໍາເປັນ, ໃຫ້ໃຊ້ dcgettext () ແລະ / ຫຼື bindtextdomain () ໃນໂຄງການຂອງທ່ານ, ຕາມຄວາມເຫມາະສົມ.

4

ດໍາເນີນການ gawk - gen-po -f myprog.awk> myprog.po ເພື່ອສ້າງໄຟລ໌ .po ສໍາລັບໂຄງການຂອງທ່ານ.

5

ໃຫ້ການແປພາສາທີ່ເຫມາະສົມແລະສ້າງແລະຕິດຕັ້ງໄຟລ໌ .mo ທີ່ສອດຄ້ອງກັນ.

ລັກສະນະການຕ່າງປະເທດແມ່ນໄດ້ອະທິບາຍໄວ້ໃນລາຍລະອຽດໃນ GAWK: Programming AWK ທີ່ມີປະສິດຕິພາບ .

Posix Compatibility

ເປົ້າຫມາຍຕົ້ນຕໍສໍາລັບ gawk ແມ່ນສອດຄ່ອງກັບມາດຕະຖານ POSIX, ເຊັ່ນດຽວກັນກັບສະບັບຫຼ້າສຸດຂອງ UNIX awk . ໃນຕອນທ້າຍນີ້, gawk ປະກອບມີລັກສະນະທີ່ສັງເກດເຫັນຜູ້ໃຊ້ຕໍ່ໄປນີ້ທີ່ບໍ່ໄດ້ອະທິບາຍໄວ້ໃນປື້ມ AWK, ແຕ່ເປັນສ່ວນຫນຶ່ງຂອງການທົດລອງ Bell Laboratories, ແລະຢູ່ໃນມາດຕະຖານ POSIX.

ຫນັງສືຊີ້ບອກວ່າການກໍານົດຕົວກໍານົດຕົວແປຄໍາສັ່ງເກີດຂື້ນເມື່ອ awk ຈະເປີດການໂຕ້ຖຽງເປັນໄຟລ໌ທີ່ເປັນຫຼັງຈາກທີ່ຕັນ BEGIN ຖືກປະຕິບັດ. ຢ່າງໃດກໍຕາມ, ໃນການປະຕິບັດກ່ອນຫນ້ານີ້, ເມື່ອການມອບຫມາຍດັ່ງກ່າວປາກົດກ່ອນຊື່ໄຟລ໌ໃດໆ, ການມອບຫມາຍຈະເກີດຂື້ນ ກ່ອນທີ່ຈະ ຕັນບລັອກໄດ້ຖືກດໍາເນີນການ. ຄໍາຮ້ອງສະຫມັກທີ່ຂຶ້ນຢູ່ກັບ "ຄຸນນະສົມບັດນີ້." ເມື່ອເວລາຖືກປ່ຽນແປງເພື່ອໃຫ້ສອດຄ່ອງກັບເອກະສານຂອງຕົນ, ທາງເລືອກ -v ສໍາລັບການກໍາຫນົດຕົວແປກ່ອນການປະຕິບັດງານຂອງໂຄງການໄດ້ຖືກເພີ່ມເຂົ້າໃນການປະຕິບັດຄໍາຮ້ອງສະຫມັກທີ່ຂຶ້ນກັບພຶດຕິກໍາເກົ່າ. (ຄຸນນະສົມບັດນີ້ໄດ້ຖືກຕົກລົງໂດຍທັງຫ້ອງທົດລອງ Bell ແລະຜູ້ພັດທະນາ GNU).

ຕົວເລືອກ -W ສໍາລັບການປະຕິບັດຄຸນສົມບັດສະເພາະແມ່ນມາຈາກມາດຕະຖານ POSIX.

ເມື່ອປະຕິບັດການໂຕ້ຖຽງ, gawk ໃຊ້ຕົວເລືອກພິເສດ `` - '' ເພື່ອເປັນສັນຍານປາຍຂອງການໂຕ້ຖຽງ. ໃນໂຫມດຄວາມເຂົ້າກັນໄດ້, ມັນເຕືອນກ່ຽວກັບແຕ່ຖ້າບໍ່ດັ່ງນັ້ນຈະບໍ່ສົນໃຈຕົວເລືອກທີ່ບໍ່ຖືກກໍານົດ. ໃນການດໍາເນີນງານຕາມປົກກະຕິ, ການໂຕ້ຖຽງດັ່ງກ່າວໄດ້ຖືກສົ່ງໄປຫາໂຄງການ AWK ເພື່ອໃຫ້ມັນດໍາເນີນການ.

ຫນັງສື AWK ບໍ່ໄດ້ກໍານົດມູນຄ່າຜົນຕອບແທນຂອງ srand () . ມາດຕະຖານ POSIX ມີມັນກັບຄືນເມັດທີ່ມັນນໍາໃຊ້, ເພື່ອໃຫ້ສາມາດຕິດຕາມລະດັບຕົວເລກແບບສຸ່ມໄດ້. ເພາະສະນັ້ນ srand () ໃນ gawk ຍັງຈະກັບຄືນເມັດພັນຂອງມັນ.

ຄຸນນະສົມບັດໃຫມ່ອື່ນໆແມ່ນ: ການນໍາໃຊ້ທາງເລືອກຫຼາຍ -f (ຈາກ MKS awk ); the array ENVIRON \ a , ແລະ \ v escape sequences (ເຮັດໃນເບື້ອງຕົ້ນໃນ gawk ແລະປ້ອນກັບຄືນໄປບ່ອນໃນ Bell Laboratories version); ເຄື່ອງມືທີ່ມີສີ ຂຽວ () ແລະ toupper () ທີ່ມີຢູ່ໃນຫນ້າທີ່ (ຈາກຫ້ອງທົດລອງ Bell Laboratories); ແລະຂໍ້ມູນການປ່ຽນແປງຂອງ ANSI C ໃນ printf (ເຮັດທໍາອິດໃນລະບົບ Bell Laboratories).

ລັກສະນະປະຫວັດສາດ

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

a = length # Holy Algol 60, Batman!

ແມ່ນຄືກັນກັບທັງຂອງ

a = length ()
a = length ($ 0)

ຄຸນນະສົມບັດນີ້ຖືກຫມາຍເປັນ `` deprecated '' ໃນມາດຕະຖານ POSIX ແລະ gawk ອອກຄໍາເຕືອນກ່ຽວກັບການນໍາໃຊ້ຖ້າ --lint ຖືກລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງ.

ຄຸນນະສົມບັດອື່ນໆແມ່ນການນໍາໃຊ້ຂໍ້ກໍານົດການ ສືບຕໍ່ ຫຼື ຢຸດ ຢູ່ນອກຮ່າງກາຍຂອງ ຂະນະທີ່ , ສໍາລັບ , ຫຼື ເຮັດ loop. ການປະຕິບັດ AWK ດັ້ງເດີມໄດ້ປະຕິບັດການນໍາໃຊ້ດັ່ງກ່າວເທົ່າກັບຄໍາສັ່ງ ຕໍ່ໄປ . Gawk ສະຫນັບສະຫນູນການນໍາໃຊ້ນີ້ຖ້າ --traditional ໄດ້ຖືກກໍານົດໄວ້.

GNU Extensions

Gawk ມີຈໍານວນຂອງການຂະຫຍາຍການ POSIX awk . ພວກເຂົາເຈົ້າໄດ້ຖືກອະທິບາຍຢູ່ໃນພາກນີ້. ການຂະຫຍາຍທັງຫມົດທີ່ອະທິບາຍໄວ້ໃນທີ່ນີ້ສາມາດຖືກປິດການໃຊ້ໂດຍການເອີ້ນໃຊ້ກັບຕົວເລືອກ --traditional .

ຄຸນລັກສະນະຕໍ່ໄປນີ້ຂອງ gawk ແມ່ນບໍ່ມີຢູ່ໃນ POSIX awk .

*

ບໍ່ມີການຄົ້ນຫາເສັ້ນທາງສໍາລັບໄຟລ໌ທີ່ມີຊື່ຜ່ານທາງເລືອກ -f . ດັ່ງນັ້ນຕົວປ່ຽນສະພາບແວດລ້ອມ AWKPATH ບໍ່ແມ່ນຄວາມພິເສດ.

*

ລະບົບ \ x escape sequence (Disabled with --posix )

*

ຟັງຊັນ fflush () (Disabled with --posix )

*

ຄວາມສາມາດໃນການສືບຕໍ່ສາຍຫຼັງຈາກ ? ແລະ : . (Disabled with --posix )

*

ຕົວເລກ octal ແລະ hexadecimal ໃນໂຄງການ AWK.

*

ຕົວ ແປ ARGIND , BINMODE , ERRNO , LINT , RT ແລະ TEXTDOMAIN ບໍ່ແມ່ນພິເສດ.

*

ຕົວປ່ຽນ IGNORECASE ແລະຜົນຂ້າງຄຽງຂອງມັນບໍ່ສາມາດໃຊ້ໄດ້.

*

ຂໍ້ມູນ FIELDWIDTHS ການ ແບ່ງປັນພາກສະຫນາມຄວາມແຕກຕ່າງແລະຄວາມຄົງທີ່.

*

ແຖວ PROCINFO ບໍ່ສາມາດໃຊ້ໄດ້.

*

ການນໍາໃຊ້ RS ເປັນການສະແດງອອກເປັນປົກກະຕິ.

*

ຊື່ໄຟລ໌ພິເສດທີ່ມີຢູ່ສໍາລັບ I / O redirection ບໍ່ໄດ້ຖືກຮັບຮູ້.

*

ຜູ້ປະກອບການ & ສໍາລັບການສ້າງການຮ່ວມມື.

*

ຄວາມສາມາດໃນການແບ່ງປັນລັກສະນະຂອງບຸກຄົນແຕ່ລະຕົວໂດຍໃຊ້ລະຫັດ null ເປັນມູນຄ່າຂອງ FS ແລະເປັນການໂຕ້ຖຽງທີສາມເພື່ອ ແບ່ງປັນ () .

*

ການໂຕ້ຖຽງທີ່ສອງທາງເລືອກກັບຫນ້າທີ່ ປິດ () .

*

ການໂຕ້ຖຽງທີສາມທາງເລືອກທີ່ມີ ຄໍາວ່າຫາ () .

*

ຄວາມສາມາດໃນການນໍາໃຊ້ຕົວກໍານົດຕໍາແຫນ່ງທີ່ມີ printf ແລະ sprintf () .

*

ການນໍາໃຊ້ການ ລຶບ ອາເລ ທີ່ຈະລຶບເນື້ອຫາທັງຫມົດຂອງອາເລ.

*

ການນໍາໃຊ້ ໄຟລ໌ ຕໍ່ໄປນີ້ຈະປະຖິ້ມການປຸງແຕ່ງຂອງໄຟລ໌ປະກອບປັດຈຸບັນ.

*

ແລະ () , asort () , bindtextdomain () , compl () , dcgettext () , gensub () , lshift () , mktime () , or () , rshift () , strftime () , strtonum () , systime () ແລະ xor () ຟັງຊັນ.

*

ເສັ້ນສາຍທ້ອງຖິ່ນ.

*

ເພີ່ມຫນ້າທີ່ໃຫມ່ໃນຫນ້າທີ່ແບບປະຕິບັດແບບເຄື່ອນໄຫວດ້ວຍຟັງຊັນ extension () .

ຫນັງສື AWK ບໍ່ໄດ້ກໍານົດມູນຄ່າຜົນຕອບແທນຂອງຫນ້າທີ່ ປິດ () . ການປິດ Gawk () ຄືນຄ່າຈາກ fclose (3), ຫຼື pclose (3), ເມື່ອປິດແຟ້ມຜົນຜະລິດຫຼືທໍ່, ຕາມລໍາດັບ. ມັນຈະສົ່ງຄືນສະຖານະການອອກຂອງຂະບວນການໃນເວລາທີ່ປິດທໍ່ໃສ່. ມູນຄ່າຜົນຕອບແທນແມ່ນ -1 ຖ້າໄຟລ໌ຊື່, ທໍ່ຫຼືຂະບວນການຮ່ວມກັນບໍ່ໄດ້ຖືກເປີດດ້ວຍການໂອນຍ້າຍ.

ເມື່ອ gawk ຖືກເອີ້ນດ້ວຍຕົວເລືອກ --traditional , ຖ້າ fs argument ກັບຕົວເລືອກ -F ແມ່ນ `` t ', ຫຼັງຈາກນັ້ນ FS ຖືກກໍານົດໃຫ້ຕົວອັກສອນແທັບ. ໃຫ້ສັງເກດວ່າການພິມ gawk -F \ t ... ພຽງແຕ່ເຮັດໃຫ້ຫອຍທີ່ຈະອ້າງວ່າ `` t, '' ແລະບໍ່ຜ່ານ `` \ t 'ກັບຕົວເລືອກ -F . ນັບຕັ້ງແຕ່ນີ້ແມ່ນກໍລະນີທີ່ພິເສດທີ່ສຸດ, ມັນບໍ່ແມ່ນພຶດຕິກໍາແບບເລີ່ມຕົ້ນ. ພຶດຕິກໍານີ້ຍັງບໍ່ເກີດຂຶ້ນຖ້າຫາກວ່າ --posix ໄດ້ຖືກກໍານົດໄວ້. ເພື່ອໃຫ້ໄດ້ຕົວອັກສອນແທັບເປັນຕົວແຍກຂໍ້ມູນພາກສະຫນາມ, ຄວນໃຊ້ຄໍາເວົ້າດຽວ: gawk -F '\ t' ... .

ເບິ່ງຄໍາສັ່ງອື່ນ : wait , lp , complete , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , swapon , autofs , talk , motd , free , lpr , execl , fdisk , at , who , iwconfig , ifconfig , vgdisplay , open , lsmod , ntohs , mailq , kill , wtmp