GoGPT Best VPN GoSearch

OnWorks favicon

makepp_builtins - ອອນລາຍໃນຄລາວ

ເປີດໃຊ້ makepp_builtins ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ makepp_builtins ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


makepp_builtins -- ຄຳສັ່ງ Builtin ໃນ makepp

ລາຍລະອຽດ


A: ງຸ່ມ, C: &ແມວ,
chgrp,
&chmod,
chown,
&cp,
cpp,
&ຕັດ, D: ວັນ, E: &ສຽງ,
&expr, F: ທີ່ບໍ່ຖືກຕ້ອງ,
fmt, G: &grep, H: ຫົວຫນ້າ, I: &ຕິດຕັ້ງ, L: &ln, M: m4,
&mkdir,
&mv, P: &perl,
ຂະບວນການກ່ອນ,
&printf, R: &rm,
ແມ່ນ rm, S: &sed,
&ຈັດຮຽງ, T: ຫາງ,
&ແມ່ແບບ,
ແຕະ,
tr, U: &ຖອນການຕິດຕັ້ງ,
&uniq, Y: &ແມ່ນ

ມີຄວາມເປັນໄປໄດ້ພິເສດຄ້າຍຄື Shell ທີ່ຈະໂທຫາຄໍາສັ່ງທີ່ສ້າງຂຶ້ນໃນກົດລະບຽບ. ເທົ່ານັ້ນ
metacharacters ຮັບຮູ້ແມ່ນເຄື່ອງຫມາຍຄໍາເຫັນ, backslashes, ວົງຢືມດຽວແລະຄູ່. ເທົ່ານັ້ນ
ຫນຶ່ງຄໍາສັ່ງອາດຈະໄດ້ຮັບຕໍ່ແຖວ, ແລະການປ່ຽນເສັ້ນທາງ I/O ບໍ່ສາມາດໃຊ້ໄດ້ (ເບິ່ງ "-i" ແລະ "-o"
ຂ້າງລຸ່ມນີ້ແທນ).

ຄໍາສັ່ງເຫຼົ່ານີ້ເລີ່ມຕົ້ນດ້ວຍ "&", ເຊິ່ງເປັນລັກສະນະຫນ້າທີ່ຢູ່ໃນ Perl ແລະບໍ່ຖືກຕ້ອງ
ລັກສະນະທໍາອິດໃນ Shell. ຖ້າບໍ່ມີຄໍາສັ່ງ builtin ຂອງຊື່ນັ້ນສາມາດພົບໄດ້, ນີ້ແມ່ນເຊັ່ນກັນ
syntax ສໍາລັບການເອີ້ນ script ພາຍນອກພາຍໃນ Perl instance ປະຕິບັດກົດລະບຽບ.
ເບິ່ງ "ແລ່ນ".

ຄໍາ​ສັ່ງ​ເຫຼົ່າ​ນີ້​, ເຊັ່ນ​ດຽວ​ກັນ​ກັບ​ຄໍາ​ສັ່ງ​ຂອງ​ຕົນ​ເອງ​ທີ່​ກໍາ​ນົດ​ໄວ້​ແລະ Perl scripts ສາ​ມາດ​ເອີ້ນ​ວ່າ​ເປັນ​
ເຮັດຫນ້າທີ່, ສົ່ງຄືນຜົນຜະລິດມາດຕະຖານ. ນີ້ຮຽກຮ້ອງໃຫ້ມີການສ້າງ perl ສໍາລັບ PerlIO.
ເສັ້ນໃໝ່ຈະຖືກປ່ຽນເປັນຊ່ອງຫວ່າງ, ຍົກເວັ້ນເມື່ອມີການປະເມີນພາຍໃນຄຳຖະແຫຼງທີ່ "ກຳນົດ".

FIRST-WORDS ;= $(&cut -d' ' -f0 $(FILES))

ເມື່ອຄໍາສັ່ງເຫຼົ່ານີ້ບໍ່ຖືກຫຍໍ້ຫນ້າເປັນການປະຕິບັດກົດລະບຽບ, ພວກເຂົາເຈົ້າໄດ້ຮັບການປະຕິບັດໃນຂະນະທີ່ອ່ານ
makefile. ນອກນັ້ນທ່ານຍັງສາມາດເຂົ້າເຖິງຄໍາສັ່ງເຫຼົ່ານີ້ stand-alone, ເຊັ່ນ: ຖ້າທ່ານຕ້ອງການຄຸນສົມບັດບາງຢ່າງ
ບໍ່ມີຢູ່ໃນຄູ່ຮ່ວມ Unix, ຜ່ານຄໍາສັ່ງ makeppbuiltin.

ຄໍາສັ່ງເຫຼົ່ານີ້ແມ່ນສ່ວນໃຫຍ່ແມ່ນອີງໃສ່ຕົວແປ GNU. ແຕ່​ທາງ​ເລືອກ​ຫຼາຍ (ເຊັ່ນ​: --ສໍາ​ຮອງ​ຂໍ້​ມູນ​,
--interactive ຫຼື --recursive) ບໍ່ມີຄວາມຫມາຍແທ້ໆໃນ makefile. ດັ່ງນັ້ນ, ເຖິງແມ່ນວ່າ
ພວກເຂົາເຈົ້າຈະງ່າຍທີ່ຈະປະຕິບັດໃນ Perl, ພວກເຂົາເຈົ້າໄດ້ຖືກປະໄວ້. ຍັງມີຄໍາສັ່ງ Unix ຫຼາຍຢ່າງ
ສະເໜີໃຫ້ຫຼາຍທາງເລືອກທີ່ກວມເອົາກໍລະນີທີ່ສັບສົນພໍສົມຄວນ (ເຊັ່ນ: ການຈັດປະເພດ
ຂໍ້ມູນຈໍາເພາະ) ໃນຂະນະທີ່ຍັງຖືກຈໍາກັດໂດຍທໍາມະຊາດ. ອະນຸຍາດໃຫ້ເຂົ້າເຖິງ Perl, ເຊິ່ງແມ່ນ
ປະຈຸບັນ, ໃຫ້ພະລັງງານຫຼາຍຢູ່ທີ່ນີ້.

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

ມາດຕະຖານ ທາງເລືອກໃນການ
ທາງເລືອກບໍ່ຫຼາຍປານໃດແມ່ນທົ່ວໄປກັບຫຼາຍ buildins, ເຖິງແມ່ນວ່າຮູບແບບສັ້ນບາງຄັ້ງຖືກເຊື່ອງໄວ້ໂດຍ
ທາງເລືອກຂອງຄໍາສັ່ງຂອງຕົນເອງ (ເຊັ່ນໃນ "&cut -f"):

-A ຊື່​ເອ​ກະ​ສານ
--args-file=ຊື່​ເອ​ກະ​ສານ
--arguments-file=ຊື່​ເອ​ກະ​ສານ
ອ່ານໄຟລ໌ ແລະວິເຄາະມັນເປັນຊ່ອງຫວ່າງທີ່ອ້າງອີງ- ແລະ/ຫຼື ແຍກແຖວໃໝ່.
ຕົວເລືອກ

-f
--ກຳລັງ
ບັງຄັບການສ້າງໄຟລ໌ທີ່ຕັ້ງໄວ້ໂດຍພາລາມິເຕີ, ເຖິງແມ່ນວ່າເປັນປະເພດທີ່ແຕກຕ່າງກັນ
ຂອງໄຟລ໌ ຫຼືບັນຊີເປົ່າຂອງຊື່ນັ້ນມີຢູ່ແລ້ວ. ອັນນີ້ຕ້ອງນຳໜ້າ "-o,
--output=filename" ທາງ​ເລືອກ​ຖ້າ​ຫາກ​ວ່າ​ມັນ​ແມ່ນ​ຈະ​ມີ​ຜົນ​ກະ​ທົບ​ໃດໆ​ກ່ຽວ​ກັບ​ການ​ທີ່​.

-i ຄຳສັ່ງ shell
--inpipe=ຄຳສັ່ງ shell
ເລີ່ມຕົ້ນຄໍາສັ່ງ Shell ແລະທໍ່ຜົນຜະລິດເຂົ້າໄປໃນ builtin. ອາດຈະມີທາງເລືອກ
ຕິດຕາມ "|" ລັກສະນະ, ເພື່ອຊີ້ບອກວ່ານີ້ແມ່ນທໍ່. ດ້ວຍຕົວເລືອກນີ້ບໍ່
ຕ້ອງການໃຫ້ຊື່ໄຟລ໌. ແຕ່ຖ້າຫາກວ່າທ່ານຕ້ອງການທີ່ຈະປະຕິບັດ buildin ໃນທັງສອງໄຟລ໌ແລະ
ຜົນຜະລິດທໍ່, ທ່ານຕ້ອງໃຊ້ "-" ເປັນຊື່ໄຟລ໌ສໍາລັບຜົນຜະລິດທໍ່. ທໍ່ແມ່ນ
ຫວ່າງເປົ່າ, ແຕ່, ເວັ້ນເສຍແຕ່ວ່າທ່ານຍັງໃຫ້ "--infail", ຄໍາສັ່ງບໍ່ໄດ້ລໍຖ້າ, ສະນັ້ນມັນ.
ສາມາດຢຸດເຊົາໃນຂະຫນານ. ທາງເລືອກນີ້ແມ່ນມີຄວາມຈໍາເປັນເພາະວ່າບໍ່ມີການປ່ຽນເສັ້ນທາງ
syntax

-I
--ບໍ່ສຳເລັດ
ຖ້າຄໍາສັ່ງ Shell "--inpipe" ລົ້ມເຫລວ, ນັ້ນກໍ່ເຮັດໃຫ້ buildin ໃນປັດຈຸບັນລົ້ມເຫລວ.
ນີ້ບໍ່ໄດ້ເຮັດວຽກຢູ່ໃນ Strawberry ແລະ Win ActiveState, ເນື່ອງຈາກວ່າ
ວິທີເຄິ່ງຫົວໃຈທີ່ພວກເຂົາເຮັດຕາມແບບ Unix fork/exec. Cygwin ໄດ້ຮັບມັນຖືກຕ້ອງ.

-o ຊື່​ເອ​ກະ​ສານ
--output=ຊື່​ເອ​ກະ​ສານ
ຂຽນຜົນໄດ້ຮັບໃສ່ໄຟລ໌ນີ້, ແທນທີ່ຈະ stdout. ຊື່ໄຟລ໌ອາດມີອັນໃດອັນໜຶ່ງເຫຼົ່ານີ້
ແບບຟອມ:

ຊື່​ເອ​ກະ​ສານ
>ຊື່​ເອ​ກະ​ສານ
ພຽງແຕ່ຂຽນໃສ່ເອກະສານ.

>>ຊື່​ເອ​ກະ​ສານ
ຕື່ມໃສ່ກັບ (ບໍ່ຈໍາເປັນ) ໄຟລ໌ທີ່ມີຢູ່ແລ້ວ.

+<ຊື່​ເອ​ກະ​ສານ
ເປີດໄຟລ໌ສໍາລັບການປ້ອນຂໍ້ມູນ, ອະນຸຍາດໃຫ້ແກ້ໄຂ inplace. ດ້ວຍຕົວເລືອກນີ້ variant
ບໍ່​ຈໍາ​ເປັນ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ປ້ອນ​ຊື່​ໄຟລ​໌​. ແຕ່ຖ້າຫາກວ່າທ່ານຕ້ອງການທີ່ຈະດໍາເນີນການ buildin ສຸດ
ໄຟລ໌ເພີ່ມເຕີມ, ທ່ານຕ້ອງໃຊ້ "-" ເປັນຊື່ໄຟລ໌ປ້ອນຂໍ້ມູນສໍາລັບອັນນີ້. ໃນຄວາມເປັນຈິງ
ຜົນ​ຜະ​ລິດ​ໄດ້​ຮັບ​ການ​ຂຽນ​ໃສ່​ໄຟລ​໌​ຊົ່ວ​ຄາວ​ທີ່​ໄດ້​ຮັບ​ການ​ຍ້າຍ​ໄປ​ຊື່​ໄຟລ​໌​ໃນ​ຕອນ​ທ້າຍ​.

|ຄຳສັ່ງ shell
ທໍ່ຜົນຜະລິດຂອງ buildin ກັບຄໍາສັ່ງ Shell.

ທາງເລືອກນີ້ແມ່ນມີຄວາມຈໍາເປັນເພາະວ່າບໍ່ມີ syntax ການປ່ຽນເສັ້ນທາງ.

-O
-- ລົ້ມເຫລວ
ຖ້າຄໍາສັ່ງ Shell "--output" ລົ້ມເຫລວ, ນັ້ນກໍ່ເຮັດໃຫ້ buildin ໃນປັດຈຸບັນລົ້ມເຫລວ.

-r ຈໍານວນ
--record-size=ຈໍານວນ
ທ້ອງຖິ່ນກໍານົດ $/ ສໍາລັບ buildin ໃນປັດຈຸບັນ. ນີ້ແບ່ງການປ້ອນຂໍ້ມູນເຂົ້າໄປໃນບັນທຶກຂອງຄວາມຍາວ
ຈໍານວນ ແທນທີ່ຈະເປັນເສັ້ນ. ຖ້າ ຈໍານວນ ແມ່ນສູນ, ແຕ່ລະໄຟລ໌ປ້ອນຂໍ້ມູນທັງໝົດແມ່ນອັນດຽວ
ບັນທຶກ.

-s string
--separator=string
ທ້ອງຖິ່ນກໍານົດ $/ ສໍາລັບ buildin ໃນປັດຈຸບັນ. ນີ້ແຍກການປ້ອນຂໍ້ມູນໃສ່ string ແທນທີ່ຈະເປັນເສັ້ນ
ໂດຍສາຍ.

-S
--Synclines
ສ້າງ "#line""ບໍ່"""""ໄຟລ໌"""" ແລະ "#line""ບໍ່" ສາຍ, ເຂົ້າໃຈ C-like ຫຼາຍ
ພາສາ.

-v
-- verbose
ບັນທຶກການປ່ຽນແປງໃນລະບົບໄຟລ໌. ອັນນີ້ຕ້ອງນຳໜ້າທາງເລືອກອື່ນຖ້າມັນໄປ
ບັນທຶກຜົນກະທົບຂອງພວກເຂົາ. ຖ້າທ່ານຜ່ານທາງເລືອກນີ້ກັບ makepp ຕົວຂອງມັນເອງ, ມັນຄືກັບວ່າທ່ານມີ
ໃຫ້ມັນສໍາລັບທຸກຄໍາສັ່ງ builtin ດຽວ.

ບຶງທາດຫຼວງ ຄໍາສັ່ງ
ມີສອງແຮງຈູງໃຈສໍາລັບການມີຄໍາສັ່ງ builtin ໃນ makepp. ທໍາອິດແມ່ນການສະເຫນີ ກ
ຊຸດຂອງຜົນປະໂຫຍດ, ເຊິ່ງ, ບໍ່ເຫມືອນກັບຄໍາສັ່ງ Shell, ໄດ້ຮັບການຮັບປະກັນທີ່ຈະເຮັດວຽກດຽວກັນ
ຢູ່ທົ່ວທຸກແຫ່ງ, ເຊັ່ນ "&echo -n" ຫຼື "&mkdir -p", ແລະປະຫຍັດຄວາມຫຍຸ້ງຍາກໃນການຊອກຫາເສັ້ນທາງ.
ເພື່ອ & ຕິດ​ຕັ້ງ​ແລະ​ການ​ຄິດ​ໄລ່​ອອກ​ທາງ​ເລືອກ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​ຂອງ​ຕົນ​. ໃນສະພາບແວດລ້ອມການລວບລວມ,
ມັນເປັນປະໂຫຍດທີ່ຈະມີທາງເລືອກ "--synclines", ເຊິ່ງປົກກະຕິພຽງແຕ່ "m4" ສະຫນອງ, ທັງຫມົດ.
ຕົວກອງ

ອີກອັນຫນຶ່ງແມ່ນຄໍາຖາມຂອງປະສິດທິພາບ. ໂດຍທົ່ວໄປແລ້ວ fork/execs ທີ່ມີລາຄາແພງຄວນຫຼີກເວັ້ນ
ບ່ອນທີ່ເປັນໄປໄດ້ຢ່າງສົມເຫດສົມຜົນ. ໃນການຈໍາລອງ Unix ເຊັ່ນ Cygwin ຫຼື BS2000/Posix, ນີ້ຈະກາຍເປັນ
ໄຊຊະນະຢ່າງຈະແຈ້ງ. ແຕ່, ເຖິງແມ່ນວ່າຢູ່ໃນ Linux, ເມື່ອຊຸດທົດສອບ makepp ຖືກປ່ຽນຈາກ
ຄໍາສັ່ງພາຍນອກກັບ buildins, ມີການປະຫຍັດໂດຍລວມຂອງ 3% ຜູ້ໃຊ້ CPU ການນໍາໃຊ້ແລະ 15%
ການນຳໃຊ້ CPU ຂອງລະບົບ. (ການ​ທົດ​ສອບ​ແມ່ນ​ແນ່​ນອນ​ວ່າ​ຢ່າງ​ຮຸນ​ແຮງ​ກ່ຽວ​ກັບ​ການ​ປະ​ຕິ​ບັດ primitive ແລະ hardly ໂທ​ຫາ​
compiler.)

ຄວາມສອດຄ່ອງຍັງເປັນບັນຫາ, ເຖິງແມ່ນວ່າພວກເຮົາຈະບໍ່ປະຕິຮູບ Unix. ຄໍາສັ່ງປົກກະຕິ
ມີ nuances ຕ່າງໆຂອງການສະແດງອອກເປັນປົກກະຕິ. ແລະຫຼາຍ invent ປະເພດຂອງພາສາ, ແຕ່ລະຄົນ
ທີ່ແຕກຕ່າງກັນແນ່ນອນ, ສໍາລັບການເຮັດບາງສິ່ງບາງຢ່າງ (ເຊັ່ນ: "expr", "sed" ...), ຫຼືທາງເລືອກທີ່ສະລັບສັບຊ້ອນສໍາລັບ
ການລະບຸທົ່ງນາ, ຕົວຂັ້ນ, ຖັນ (ເຊັ່ນ: "ຕັດ", "ຄັດ" ...).

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

sub my_filter {
# ກັບຄືນຄວາມຈິງ iff $_ ແມ່ນຕ້ອງການ
}
%out: %.ໃນ Makeppfile
&grep &my_filter $(input) -o $(output)

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

ໃນທາງກົງກັນຂ້າມ, ຄວາມໂງ່ຈ້າອາດຈະເປັນຄວາມປາຖະຫນາຖ້າທ່ານມີໂປຼແກຼມທີ່ປະສົມປະສານກັບໂປຼແກຼມ
ແລະລັກສະນະການຕັ້ງຄ່າໃນໄຟລ໌ດຽວ. ຕົວຢ່າງຈະເປັນໄຟລ໌ WSDL ທີ່ມີທັງ a
ຄໍານິຍາມການໂຕ້ຕອບການບໍລິການເວັບ ແລະທີ່ຢູ່ IP. ທ່ານ​ສາ​ມາດ​ປຸງ​ແຕ່ງ​ໄຟລ​໌​ນີ້​ລ່ວງ​ຫນ້າ​ກັບ​
ຄໍາສັ່ງ & ແມ່ແບບເພື່ອແກ້ໄຂໃນການຕັ້ງຄ່າ, ແຕ່ບໍ່ໃຫ້ makepp ສັງເກດເຫັນ.

&ແມວ [ທາງເລືອກ ... ] ຊື່​ເອ​ກະ​ສານ ...
ຮວມໄຟລ໌ທັງໝົດເຂົ້າໄປໃນອັນດຽວ.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=filename, -O, --outfail, -S,
--synclines, -v, --verbose"

&chmod [ທາງເລືອກ ... ] ຮູບແບບການ ຊື່​ເອ​ກະ​ສານ ...
ຊຸດ ຮູບແບບການ ສໍາລັບໄຟລ໌ທີ່ໃຫ້ທັງຫມົດ. ໂໝດຕ້ອງເປັນສະຕຣິງຖານແປດ.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -v, --verbose"

&cp [ທາງເລືອກ ... ] ໄຟລ໌ແຫຼ່ງ destfile
&cp [ທາງເລືອກ ... ] ໄຟລ໌ແຫຼ່ງ
&cp [ທາງເລືອກ ... ] ໄຟລ໌ແຫຼ່ງ ... destdir
ສໍາເນົາ ໄຟລ໌ແຫຼ່ງ to destfile, ຫນຶ່ງ ໄຟລ໌ແຫຼ່ງ ໄປຫາໄດເລກະທໍລີປະຈຸບັນຫຼືຫຼາຍອັນ
ໄຟລ໌ແຫຼ່ງs ກັບ destdir ທີ່ມີຊື່ດຽວກັນ.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -v,
--verbose"

-l
--link
ພະຍາຍາມເຊື່ອມຕໍ່ໄຟລ໌. ຖ້າມັນລົ້ມເຫລວ, ພະຍາຍາມເຊື່ອມຕໍ່ສັນຍາລັກ, ຖ້ານັ້ນແມ່ນຄືກັນ
ຮ້ອງຂໍ, ສໍາເນົາອື່ນ.

-s
--ສັນຍະລັກ
--symbolic-ເຫນີການເຊື່ອມຕໍ່
--symlink
ພະຍາຍາມເຊື່ອມຕໍ່ໄຟລ໌ທີ່ເປັນສັນຍາລັກ. ຖ້າມັນລົ້ມເຫລວ, ຄັດລອກ.

ເບິ່ງບັນທຶກພາຍໃຕ້ &ln.

&ຕັດ [ທາງເລືອກ ... ] ຊື່​ເອ​ກະ​ສານ ...
ພິມສ່ວນທີ່ເລືອກຂອງເສັ້ນຈາກແຕ່ລະໄຟລ໌ ຫຼືເສັ້ນທີ່ເລືອກ, ນັບທົ່ວທັງໝົດ
ໄຟລ໌. ຜົນໄດ້ຮັບແມ່ນຖືກແຍກອອກໂດຍຕົວຂັ້ນທີ່ຕັ້ງໄວ້ໃນຕອນຕົ້ນຂອງ TAB ສໍາລັບຊ່ອງຂໍ້ມູນ ແລະ
ສະຕຣິງຫວ່າງເປົ່າສໍາລັບຕົວອັກສອນ.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=filename, -O, --outfail, -r,
--record-size=number, --separator=string, -S, --synclines, -v, --verbose"

-c ບັນຊີລາຍຊື່
--ຕົວອັກສອນ=ບັນຊີລາຍຊື່
ພິມຕົວອັກສອນທັງຫມົດທີ່ລະບຸໂດຍ ບັນຊີລາຍຊື່. ບັນ​ຊີ​ລາຍ​ຊື່ ອາດຈະເປັນການສະແດງອອກ Perl ໃດ
ສົ່ງຄືນລາຍຊື່ຈຳນວນເຕັມ. ຈຳນວນເຕັມສາມາດເປັນບວກ, ເລີ່ມຈາກ
ສູນທີ່ຈະນັບຈາກຈຸດເລີ່ມຕົ້ນ, ຫຼືລົບໃຫ້ນັບຈາກທ້າຍ. ແຕກຕ່າງຈາກ Unix
"ຕັດ", ຄໍາສັ່ງທີ່ທ່ານຮ້ອງຂໍແມ່ນເຄົາລົບ.

ບໍ່ຄືກັບຕົວປະຕິບັດການຂອງຊິ້ນສ່ວນຂອງ Perl ທີ່ໄລຍະ ".." ຈະຕ້ອງເປັນບວກ ຫຼື
ລົບ, &cut ອະນຸຍາດໃຫ້ເລີ່ມຕົ້ນດ້ວຍບວກ ແລະສິ້ນສຸດດ້ວຍລົບ. ແຕ່
ນີ້ສາມາດໃຊ້ໄດ້ພຽງແຕ່ຖ້າການສະແດງອອກຂອງທ່ານມີພຽງແຕ່ຕົວເລກ, ເຄື່ອງໝາຍຈຸດ ແລະ
"..". ຕົວຢ່າງ: "1..-2" ຫມາຍເຖິງທຸກສິ່ງທຸກຢ່າງແຕ່ທໍາອິດ (0) ແລະສຸດທ້າຍ (-1).

ການສະແດງລາຍຊື່ສາມາດເບິ່ງເສັ້ນທັງໝົດໃນ $_. ການປ່ຽນແປງທີ່ຈະເປັນ
ບໍ່ສົນໃຈ, ຢ່າງໃດກໍຕາມ, ເນື່ອງຈາກວ່າໃນເວລາທີ່ການສະແດງອອກນີ້ຖືກປະເມີນເສັ້ນໄດ້ແລ້ວ
ຖືກແຍກເປັນຕົວແປອັດຕະໂນມັດຂອງ Perl @::F. ຕົວເລກທີ່ທ່ານກັບຄືນມາແມ່ນຄວາມຈິງ
ຕົວຊີ້ວັດໃນບັນຊີລາຍຊື່ນັ້ນ.

-d string
--delimiter=string
ກໍານົດຕົວຂັ້ນໃຫມ່ສໍາລັບຊ່ອງໃສ່ຂໍ້ມູນແລະຜົນຜະລິດ. ບໍ່ເຫມືອນກັບ Unix "ຕັດ", ນີ້ອາດຈະມີ
ຄວາມຍາວໃດໆ.

-E
--noscape
ປະຕິບັດ "\" ເປັນຕົວຫນັງສືປົກກະຕິສໍາລັບ "-p, --printf=format".

-f ບັນຊີລາຍຊື່
--fields=ບັນຊີລາຍຊື່
ພິມກຸ່ມທັງໝົດທີ່ລະບຸໂດຍ ບັນຊີລາຍຊື່. ບັນ​ຊີ​ລາຍ​ຊື່ ດັ່ງທີ່ອະທິບາຍໄວ້ພາຍໃຕ້ "-c,
--characters=list" ໃຫ້ສັງເກດວ່າອັນນີ້ເຊື່ອງຕົວເລືອກມາດຕະຖານ "-f" ເຊິ່ງຈະຕ້ອງເປັນ
ໃຫ້ເປັນ "--force".

-l ບັນຊີລາຍຊື່
--lines=ບັນຊີລາຍຊື່
ພິມທຸກເສັ້ນທີ່ລະບຸໄວ້ໂດຍ ບັນຊີລາຍຊື່. ບັນ​ຊີ​ລາຍ​ຊື່ ດັ່ງທີ່ອະທິບາຍໄວ້ພາຍໃຕ້ "-c,
--characters=list" ມີ​ຄວາມ​ແຕກ​ຕ່າງ​ທີ່​ສໍາ​ຄັນ​ຫນຶ່ງ​: ແຖວ​ທໍາ​ອິດ​ມີ​ຈໍາ​ນວນ 1​, ມີ​
ແມ່ນບໍ່ມີເສັ້ນ 0. ນີ້ແນ່ນອນບໍ່ມີປະສິດທິພາບສໍາລັບໄຟລ໌ຂະຫນາດໃຫຍ່, ຖ້າທ່ານມີຕົວປະສົມ
ບວກກັບລະດັບລົບໃນບັນຊີລາຍຊື່ຂອງເຈົ້າ, ຍ້ອນວ່າມັນອ່ານທຸກຢ່າງໄປສູ່ຄວາມຊົງຈໍາ.
ຖ້າບໍ່ດັ່ງນັ້ນ Perl ສາມາດເພີ່ມປະສິດທິພາບນີ້, ແຕ່ຂ້ອຍບໍ່ຮູ້ວ່າມັນເຮັດໄດ້ບໍ.

-m
--ການຈັບຄູ່
ພິມສະເພາະເສັ້ນທີ່ກົງກັນ, ເຊັ່ນວ່າອັນທີ່ມີຕົວອັກສອນ ຫຼືຊ່ອງຂໍ້ມູນພຽງພໍ. ນີ້
ຫມາຍຄວາມວ່າ "--only-delimited", ຊຶ່ງເປັນເຫດຜົນທີ່ວ່າທ່ານຈະພາດເສັ້ນພາກສະຫນາມດຽວກັບ
"--fields=0".

-p ຮູບແບບ
--printf=ຮູບແບບ
ນຳໃຊ້ຮູບແບບ (ດ້ວຍ \escapes) ກັບທຸກຊ່ອງຂໍ້ມູນ ຫຼືຕົວອັກສອນ.

-s
-- ພຽງແຕ່-delimited
ພິມສະເພາະເສັ້ນທີ່ມີຕົວຂັ້ນ.

&cut -c 10-20,-5,25- $(ປ້ອນຂໍ້ມູນ)
&cut -c 'grep $$_ %3, 0..99' $(input) # 1st 100 ຖັນບໍ່ຄູນ 3.
&cut -d: --fields 0,4 --printf='%10s ແມ່ນ %s\n' / etc / passwd

&ສຽງ [ທາງເລືອກ ... ] string ...
&printf [ທາງເລືອກ ... ] ຮູບແບບ ການໂຕ້ຖຽງ ...
&ແມ່ນ [ທາງເລືອກ ... ] string ...
ຂຽນສະຕຣິງທັງໝົດໃສ່ stdout ຫຼື outfile ທີ່ໃຫ້. ທັງ &echo ແລະ &yes ເພີ່ມແຖວໃໝ່
ໃນຕອນທ້າຍ. ສະຕຣິງ, ຫຼືສໍາລັບ &printf ຮູບແບບ, ອາດຈະມີ "\" ຫນີ, ຍ້ອນວ່າພວກມັນ
ເປັນທີ່ຮູ້ຈັກຈາກ C ຫຼື Unix ທີ່ທັນສະໄຫມຫຼື Shell "echo". ຢ່າງໃດກໍຕາມ, ພວກເຂົາເຈົ້າແມ່ນຄືກັນກັບໃນ Perl double-
ວົງຢືມ, ຊຶ່ງຫມາຍຄວາມວ່າຄວາມແຕກຕ່າງບາງຢ່າງ, ເຊັ່ນວ່າ "\" ແຖວດຽວແມ່ນບໍ່ອະນຸຍາດໃຫ້.
Perl ມີການຫລົບຫນີທີ່ຫນ້າສົນໃຈຫຼາຍ, ແຕ່ສິ່ງທີ່ເຈົ້າອາດຈະຄາດຫວັງວ່າຈະເຮັດບາງສິ່ງບາງຢ່າງ
ທີ່​ແຕກ​ຕ່າງ​ກັນ​ແມ່ນ​:

\cA ເປັນຕົວຄວບຄຸມ ^A.

\u ປະກອບຈົດໝາຍຕໍ່ໄປນີ້.

\U ເພີ່ມສ່ວນທີ່ເຫຼືອ, ຫຼືເຖິງ "\E" ຫຼື "\L" ຖ້າພົບເຫັນ.

\xHH, \x{ຮຮ. ຮ}
ແມ່ນຄ່າຕົວອັກສອນຂອງລະຫັດ Hex ທີ່ໃຫ້. ໃຫ້ສັງເກດວ່າລະຫັດຕົວເລກບໍ່ແມ່ນ
Portable ກັບເວທີ EBCDIC!

ບໍ່ເຫມືອນກັບ Unix "ແມ່ນ", & yes ແມ່ນຄືກັນກັບ &echo, ຍົກເວັ້ນວ່າມັນເຮັດຊ້ໍາຜົນຜະລິດສໍາລັບ
ຕາບໃດທີ່ມັນສາມາດເຮັດໄດ້, ໂດຍປົກກະຕິຈົນກ່ວາ "--output '| ຄໍາສັ່ງ'" ຢຸດຕິ. ແລະ, ຖ້າ & ແມ່ນ
ບໍ່ມີການໂຕ້ຖຽງ, ມັນເລີ່ມຕົ້ນເປັນ "y".

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -o,
--output=ຊື່ໄຟລ໌, -O, --outfail, -v, --verbose"

-E
--noscape
ປະຕິບັດ "\" ເປັນຕົວຫນັງສືປົກກະຕິ.

-n
-- ແຖວໃໝ່
ຢ່າເພີ່ມແຖວໃໝ່ຫຼັງຈາກສາຍສຸດທ້າຍ. (ບໍ່ເຂົ້າໃຈໂດຍ &printf.)

&expr [ທາງເລືອກ ... ] perlcode ...
ພິມຄ່າ scalar ຂອງ perlcode, ເຊິ່ງອາດຈະຂຽນເປັນຫນຶ່ງຫຼືຫຼາຍ argument.
ໃຫ້ສັງເກດວ່າຄໍາສັ່ງ builtin ບໍ່ໄດ້ຖືກວິເຄາະໂດຍ Shell, ດັ່ງນັ້ນ "*", "(" ຫຼື ">" ບໍ່ແມ່ນ.
ພິເສດ. ແຕ່ວົງຢືມສະຕຣິງຖືກວິເຄາະໂດຍ makepp, ດັ່ງນັ້ນ Perl strings ຕ້ອງໄດ້ຮັບການອ້າງອີງ
ສອງຄັ້ງ, ເວັ້ນເສຍແຕ່ວ່າທ່ານຕ້ອງການໃຊ້ຄໍາເປົ່າ. ຖ້າຄ່າບໍ່ຖືກຕ້ອງ, ນີ້ຈະລົ້ມເຫລວ. ຫມາຍ​ເຫດ​
ທີ່ - ບໍ່ເຫມືອນກັບ Unix "expr" -- ຫນ້າທີ່ດັດສະນີຂອງ Perl ເລີ່ມຕົ້ນທີ່ 0 (false) ແລະກັບຄືນ.
-1 (ຄວາມຈິງ) ສໍາລັບຄວາມລົ້ມເຫຼວ.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -o,
--output=ຊື່ໄຟລ໌, -O, --outfail, -v, --verbose"

-n
-- ແຖວໃໝ່
ຢ່າເພີ່ມແຖວໃໝ່ຫຼັງຈາກຜົນຜະລິດ.

&expr ($(VAR) - 3) * 2 < 1 && -1 || 1
&expr "$(VAR) - 3 * 2 < 1 ? 'joy' : 'sorrow'" -o $(output)
-&expr $(VAR) - 3 * 2 -o >>$(ອອກ)

&grep [ທາງເລືອກ ... ] perlcode ຊື່​ເອ​ກະ​ສານ ...
&perl [ທາງເລືອກ ... ] perlcode ຊື່​ເອ​ກະ​ສານ ...
&sed [ທາງເລືອກ ... ] perlcode ຊື່​ເອ​ກະ​ສານ ...
ໄຟລ​໌​ທັງ​ຫມົດ​ໄດ້​ຮັບ​ການ​ອ່ານ​ເສັ້ນ​ໂດຍ​ແຖວ (ເວັ້ນ​ເສຍ​ແຕ່​ວ່າ​ທ່ານ​ໃຫ້​ເປັນ "--separator​" ທາງ​ເລືອກ​)​, ແລະ​
perlcode ໄດ້ຮັບການປະເມີນສໍາລັບແຕ່ລະແຖວ, ກ່ອນທີ່ຈະພິມອອກ. &sed ແມ່ນຄ້າຍຄືກັນກັບ
"perl -pe", ໃນຂະນະທີ່ & grep ພຽງແຕ່ສົ່ງຜົນໃຫ້ເສັ້ນເຫຼົ່ານັ້ນ perlcode ສົ່ງຄືນຄວາມຈິງ
ຄ່າ. &perl ແມ່ນຄ້າຍຄືກັນກັບ "perl -ne", ພຽງແຕ່ອອກອັນໃດກໍ່ຕາມທີ່ທ່ານພິມຢ່າງຈະແຈ້ງ
ໃນ perlcode. ເນື້ອໃນແຖວແມ່ນມີຢູ່ໃນ $_, ເຊິ່ງອາດຈະຖືກດັດແກ້.

ໃນສາມອັນນີ້, ມີພຽງແຕ່ &grep ທີ່ຈະລົ້ມເຫລວຖ້າມັນບໍ່ມີຜົນໄດ້ຮັບ. ໃຫ້ສັງເກດວ່າບໍ່ມີ
ທາງເລືອກທີ່ບໍ່ສົນໃຈກໍລະນີ, ເພາະວ່າເຈົ້າຈະເຮັດແນວນັ້ນດ້ວຍ "/regexp/i".

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=filename, -O, --outfail, -r,
--record-size=number, -s, --separator=string, -S, --synclines, --verbose"

ຕົວເລືອກ "--synclines" ພຽງແຕ່ເຮັດໃຫ້ຄວາມຮູ້ສຶກກັບ &perl ຖ້າທ່ານໃຊ້ &Mpp::Cmds::print to
ຜົນຜະລິດ $_. ມີພຽງແຕ່ &grep ທີ່ມີທາງເລືອກເພີ່ມເຕີມ:

-c
--ນັບ
ສະກັດກັ້ນຜົນຜະລິດປົກກະຕິ; ແທນທີ່ຈະພິມຈໍານວນເສັ້ນທີ່ກົງກັນ. ດ້ວຍ "-v,
--invert-match" ທາງເລືອກ (ເບິ່ງຂ້າງລຸ່ມນີ້), ນັບເສັ້ນທີ່ບໍ່ກົງກັນ.

-l
--ລາຍການ
--files-with-match
ສົ່ງອອກພຽງແຕ່ຊື່ຂອງໄຟລ໌ເຫຼົ່ານັ້ນທີ່ກົງກັນ. ເມື່ອອັນນີ້ຖືກລວມເຂົ້າກັບ "-v,
--invert-match", ສົ່ງອອກຊື່ຂອງໄຟລ໌ທີ່ມີເສັ້ນທີ່ບໍ່ກົງກັນ (ເລັກນ້ອຍ
ໂງ່ແຕ່ເຂົ້າກັນໄດ້ກັບ Unix -vl). ເມື່ອນີ້ຖືກລວມກັບສອງເທົ່າ
"-vv", ອອກຊື່ຂອງໄຟລ໌ທີ່ບໍ່ກົງກັນ.

-v
-- ໃນທາງກັບກັນ
--revert-match
--invert-match
ປ່ຽນ​ຄວາມ​ຮູ້​ສຶກ​ຂອງ​ການ​ຈັບ​ຄູ່​, ເພື່ອ​ຄັດ​ເລືອກ​ເອົາ​ເສັ້ນ​ທີ່​ບໍ່​ກົງ​ກັນ​. ໃຫ້ສັງເກດວ່ານີ້ເຊື່ອງ
ຕົວເລືອກມາດຕະຖານ "-v" ເຊິ່ງຕ້ອງຖືກມອບໃຫ້ເປັນ "--verbose".

-w ຊື່​ເອ​ກະ​ສານ
--waste-file=ຊື່​ເອ​ກະ​ສານ
ກະຕ່າຂີ້ເຫຍື້ອທາງເລືອກສໍາລັບການລວບລວມສາຍທີ່ຖືກປະຕິເສດ. ນີ້ແມ່ນບໍ່ພຽງແຕ່ສໍາລັບ
debugging ລະ​ຫັດ​ການ​ຄັດ​ເລືອກ​ຂອງ​ທ່ານ​, ແຕ່​ຍັງ​ສໍາ​ລັບ​ການ​ແຍກ​ຂໍ້​ມູນ​ຂອງ​ທ່ານ​ເປັນ​ສອງ​. ເຊັ່ນ​ດຽວ​ກັບ
ຜົນຜະລິດປົກກະຕິ, ທ່ານສາມາດແກ້ໄຂ $_ ກ່ອນທີ່ຈະກັບຄືນ false.

&sed s/foo/bar/ f1 f2 f3 -o outfile # ເຊັ່ນ: sed s/foo/bar/ f1 f2 f3 >outfile
&sed '$$_ = uc' f1 f2 f3 -o outfile # ເຊັ່ນ: tr '[:lower:]' '[:upper:]' f1 f2 f3
&grep '$$. %3' f1 f2 f3 -o outfile # ລົບລ້າງທຸກໆແຖວທີ 3
&grep -c /match/i f1 f2 f3 # ນັບແຖວທີ່ກົງກັບ 'match' ເປັນ STDOUT

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

# ສ້າງ get ແລະອາດຈະກໍານົດວິທີການຈາກ "ປະເພດ /* R[OW] */ ສະມາຊິກ;".
sub cxx_accessors {
$acc ||=''; # ຜູ້ສະໝັກ 5.10.0 ລັດ
ຖ້າ(m!^\s*.+?)\s*/\*\s*R([OW])\s*\*/\s*.+?)\s*;!) {
$acc .= "#line $.\n"; # ບອກ C++ ວ່າມັນມາຈາກໃສ
$acc .= "void set\u$3( const $1 &__tmp ) { $3 = __tmp; }"
ຖ້າ $2 eq 'W';
$acc .= "const $1 &get\u$3() const { return $3; }\n";
} elsif( /^\s*(?:public|protected)\s*:/ ) {
$_ .= $acc;
$acc = '';
}
}

%.cc: %.cc.in # ໃຊ້ &sed ສໍາລັບການຈັດການ I/O
&sed --sync-lines &cxx_accessors $(input) -o $(output)

&ຕິດຕັ້ງ [ທາງເລືອກ ... ] ໄຟລ໌ແຫຼ່ງ destfile
&ຕິດຕັ້ງ [ທາງເລືອກ ... ] ໄຟລ໌ແຫຼ່ງ ... destdir
&ຕິດຕັ້ງ --directory [ທາງເລືອກ ... ] ລະບົບ ...
ຍ້າຍ ຫຼືປ່ຽນຊື່ ໄຟລ໌ແຫຼ່ງ to destfile, ຫຼືຫຼາຍ ໄຟລ໌ແຫຼ່ງs ກັບ destdir ກັບ
ຊື່ດຽວກັນ. ນີ້​ແມ່ນ​ວິ​ທີ​ທີ່​ຕ້ອງ​ການ​ຂອງ​ການ​ໂອນ​ຜົນ​ໄດ້​ຮັບ​ການ​ກໍ່​ສ້າງ​ທີ່​ສຸດ​ຂອງ​ເຂົາ​ເຈົ້າ​
ສະຖານທີ່ຕິດຕັ້ງ.

ທຸກໆການດັດແກ້ລະບົບໄຟລ໌ທີ່ປະຕິບັດໂດຍ & ການຕິດຕັ້ງໄດ້ຮັບການບັນທຶກໄວ້ໃນຕອນທ້າຍຂອງການ
ໄຟລ໌ທີ່ຊີ້ໄປໂດຍຕົວແປສະພາບແວດລ້ອມ $INSTALL_LOG, ຫຼື, ຖ້າອັນນັ້ນບໍ່ໄດ້ຕັ້ງແຕ່
ພວກເຮົາຢູ່ພາຍໃຕ້ໄດເລກະທໍລີທີ່ມີ a RootMakeppfile.mk, ກັບໄຟລ໌ຂອງ .install_log ໃນ​ນັ້ນ
ໄດເລກະທໍລີ, ຫຼືອື່ນໆໄປຫາໄຟລ໌ນັ້ນຢູ່ໃນໄດເລກະທໍລີປະຈຸບັນ. ທ່ານອາດຈະຕ້ອງການລຶບ
logfile ກ່ອນຊຸດຂອງ & ຕິດຕັ້ງ invocations.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -v, --verbose"

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

-d
-- ບັນຊີລາຍການ
ໃນຮູບແບບທີສາມຂອງຄໍາສັ່ງນີ້ສ້າງໄດເລກະທໍລີທີ່ໃຫ້ທັງຫມົດແລະໃດໆ
ໄດເລກະທໍລີພໍ່ແມ່ທີ່ຈໍາເປັນ.

-g ກຸ່ມ
--group=ກຸ່ມ
ປ່ຽນຄວາມເປັນເຈົ້າຂອງກຸ່ມຂອງໄຟລ໌ປາຍທາງ. ກຸ່ມອາດຈະໄດ້ຮັບໂດຍ
ຊື່ ຫຼືຕົວເລກ.

-l
--link
ພະຍາຍາມເຊື່ອມຕໍ່ໄຟລ໌. ຖ້າມັນລົ້ມເຫລວ, ຄັດລອກ.

--log=ຊື່​ເອ​ກະ​ສານ
--logfile=ຊື່​ເອ​ກະ​ສານ
ການນໍາໃຊ້ ຊື່​ເອ​ກະ​ສານ ແທນທີ່ຈະເປັນ logfile ປົກກະຕິ.

-m ຮູບແບບການ
--mode=ຮູບແບບການ
ຊຸດ ຮູບແບບການ ສໍາລັບໄຟລ໌ປາຍທາງທັງໝົດ ຫຼືໄດເລກະທໍລີ. ໂໝດຕ້ອງເປັນສະຕຣິງຖານແປດ.

-o ເຈົ້າຂອງ
--ເຈົ້າຂອງ=ເຈົ້າຂອງ
ປ່ຽນຄວາມເປັນເຈົ້າຂອງຂອງໄຟລ໌ປາຍທາງ. ເຈົ້າ ຂອງ ອາດ ຈະ ໄດ້ ຮັບ ໂດຍ ຊື່ ຫຼື
ຕົວເລກ.

-r
-- ແກ້​ໄຂ​
--resolve-ສັນຍະລັກ
--resolve-symbolic-link
--resolve-symlink
-S
--ສັນຍະລັກ
--symbolic-ເຫນີການເຊື່ອມຕໍ່
--symlink
ສ້າງການເຊື່ອມຕໍ່ສັນຍາລັກແທນທີ່ຈະເຄື່ອນຍ້າຍ. ຕົວເລືອກເຫຼົ່ານີ້ຖືກສົ່ງຕໍ່ &ln ແລະແມ່ນ
ອະທິບາຍຢູ່ທີ່ນັ້ນ.

-s
--ເສັ້ນ
ໂທຫາຜົນປະໂຫຍດ "strip", ເຊິ່ງຈະຕ້ອງຢູ່ໃນ $PATH, ໃນໄຟລ໌ປາຍທາງ.

&ln [ທາງເລືອກ ... ] ໄຟລ໌ແຫຼ່ງ destfile
&ln [ທາງເລືອກ ... ] ໄຟລ໌ແຫຼ່ງ
&ln [ທາງເລືອກ ... ] ໄຟລ໌ແຫຼ່ງ ... destdir
ການເຊື່ອມຕໍ່ ໄຟລ໌ແຫຼ່ງ to destfile, ຫນຶ່ງ ໄຟລ໌ແຫຼ່ງ ໄປຫາໄດເລກະທໍລີປະຈຸບັນຫຼືຫຼາຍອັນ
ໄຟລ໌ແຫຼ່ງs ກັບ destdir ທີ່ມີຊື່ດຽວກັນ.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -v,
--verbose"

-r
-- ແກ້​ໄຂ​
--resolve-ສັນຍະລັກ
--resolve-symbolic-link
--resolve-symlink
ນີ້ແມ່ນສິ່ງທີ່ທ່ານສະເຫມີຕ້ອງການ "ln -s" ເຮັດ. ສ້າງສັນຍາລັກແທນທີ່ຈະຍາກ
ການເຊື່ອມຕໍ່, ບໍ່ແມ່ນການສະຕຣິງທີ່ລະບຸ, ແຕ່ແທ້ໆກັບໄຟລ໌ທີ່ໃຫ້.

-s
--ສັນຍະລັກ
--symbolic-ເຫນີການເຊື່ອມຕໍ່
--symlink
ສ້າງສັນຍາລັກແທນທີ່ຈະເປັນການເຊື່ອມຕໍ່ຍາກ.

ຫມາຍ​ເຫດ​: ໃນໄຟລ໌ຕ່າງໆຫຼືລະບົບປະຕິບັດການ, ການດໍາເນີນງານນີ້ບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນ. ຫຼືມັນ
ແມ່ນ, e.g. ໂດຍ Cygwin, ແຕ່ບໍ່ເຂົ້າໃຈໂດຍຜູ້ລວບລວມ Windows ພື້ນເມືອງ, ຖ້າທ່ານໃຊ້ຫນຶ່ງ.
ສໍາລັບ makefile ທີ່ທ່ານບໍ່ສາມາດປ່ຽນແປງໄດ້, ເພື່ອໃຫ້ໄດ້ຜົນໄດ້ຮັບຢ່າງຫນ້ອຍບາງປະເພດ, &ln ແລະ "&cp -l
-s" ສາມາດຄັດລອກໄຟລ໌ສໍາລັບທ່ານແທນ (ບໍ່ແມ່ນໄດເລກະທໍລີ).
ຈໍາເປັນຕ້ອງໄດ້ສົ່ງອອກຕົວແປຕໍ່ໄປນີ້ກ່ອນທີ່ຈະໂທຫາ makepp:

ສົ່ງອອກ MAKEPP_LN_CP=1
&ln --resolve ຫຼື --symbolic ຈະສຳເນົາໄຟລ໌ແທນການສ້າງສັນຍາລັກ
ການເຊື່ອມຕໍ່.

ສົ່ງອອກ MAKEPP_LN_CP=2
&ln ຈະສຳເນົາໄຟລ໌ແທນການສ້າງລິ້ງຍາກ.

ສົ່ງອອກ MAKEPP_LN_CP=3
ການຮຽກຮ້ອງທັງໝົດຂອງ &ln ຈະສຳເນົາໄຟລ໌ແທນການສ້າງປະເພດໃດນຶ່ງ
ການເຊື່ອມຕໍ່.

&mkdir [ທາງເລືອກ ... ] ລະບົບ ...
ສ້າງໄດເລກະທໍລີ.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -v,
--verbose"

-m ຮູບແບບການ
--mode=ຮູບແບບການ
ຊຸດ ຮູບແບບການ ສໍາລັບໄດເລກະທໍລີທີ່ສ້າງທັງຫມົດ, ໂດຍບໍ່ຄໍານຶງເຖິງ umask. ໂໝດຕ້ອງເປັນ
ສາຍແປດ.

-p
--ພໍ່ແມ່
ສ້າງໄດເລກະທໍລີພໍ່ແມ່ທີ່ຈໍາເປັນ. ບໍ່ສົນໃຈການສ້າງໄດເລກະທໍລີລົ້ມເຫລວ
ເນື່ອງຈາກໄດເລກະທໍລີທີ່ມີຢູ່ແລ້ວ (ເຖິງແມ່ນວ່າມັນຖືກສ້າງຂື້ນພ້ອມກັນໂດຍ
ຂະ​ບວນ​ການ​ອື່ນ).

&mv [ທາງເລືອກ ... ] ໄຟລ໌ແຫຼ່ງ destfile
&mv [ທາງເລືອກ ... ] ໄຟລ໌ແຫຼ່ງ
&mv [ທາງເລືອກ ... ] ໄຟລ໌ແຫຼ່ງ ... destdir
ຍ້າຍ ຫຼືປ່ຽນຊື່ ໄຟລ໌ແຫຼ່ງ to destfile, ຫນຶ່ງ ໄຟລ໌ແຫຼ່ງ ໄປຫາໄດເລກະທໍລີປະຈຸບັນຫຼືຫຼາຍອັນ
ໄຟລ໌ແຫຼ່ງs ກັບ destdir ທີ່ມີຊື່ດຽວກັນ.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -v,
--verbose"

&ຂະບວນການກ່ອນ [ທາງເລືອກ ... ] variable=ນິຍາມ ... ຊື່​ເອ​ກະ​ສານ ...
ນີ້ preprocesses ໄຟລ໌ແທ້ຄືກັນກັບ makepp ເຮັດສໍາລັບ makefiles. ນີ້​ແມ່ນ
ມີອໍານາດຫຼາຍກວ່າ & ແມ່ແບບແຕ່ syntactically ບໍ່ເຫມາະສົມກັບໄຟລ໌ທີ່ມີຈໍານວນຫລາຍ
"$"-signs, ເຊັ່ນ Makefiles ຫຼື scripts.

ຖະແຫຼງການທີ່ມີເງື່ອນໄຂ, ເຊັ່ນດຽວກັນກັບຄໍາຖະແຫຼງທີ່ "ລວມ"/"_include" (ເຊິ່ງຢູ່ທີ່ນີ້
ທັງ​ບໍ່​ໄດ້​ສ້າງ​ໄຟລ​໌​ຫຼື​ຄົ້ນ​ຫາ​ຂຶ້ນ​ໄປ​)​, "perl​"/"makeperl​"/"perl_begin​" ຫຼື
"sub"/"makesub", ຫຼືຄໍາຖະແຫຼງຕ່າງໆທີ່ທ່ານກໍານົດພາຍໃນໄຟລ໌, ໄດ້ຖືກປະມວນຜົນ. ຫວ່າງເປົ່າ
ແລະ​ເສັ້ນ​ຄວາມ​ຄິດ​ເຫັນ​ໄດ້​ຖືກ​ລົບ​ລ້າງ​.

ແຕ່, ແທນທີ່ຈະຮຽນຮູ້ກົດລະບຽບການກໍ່ສ້າງ, ມັນຈະອອກສາຍທີ່ຍັງເຫຼືອທັງຫມົດຫຼັງຈາກນັ້ນ
"$(...)" ການຂະຫຍາຍການສະແດງອອກ. ​ເພື່ອ​ປ້ອງ​ກັນ​ບໍ່​ໃຫ້​ຄຳ​ເວົ້າ​ດັ່ງກ່າວ​ຖືກ​ຮັບ​ຮູ້,
ທ່ານ​ສາ​ມາດ​ນໍາ​ຫນ້າ​ເຂົາ​ເຈົ້າ​ດ້ວຍ​ການ​ສະ​ແດງ​ອອກ​ຫວ່າງ​ເປົ່າ "$()​"​. ດຽວກັນໃຊ້ກັບສາຍຂອງທ່ານ
ຕ້ອງ​ການ​ທີ່​ຈະ​ຢູ່​ຫວ່າງ​ເປົ່າ​ຫຼື​ທີ່​ຈະ​ຮັກ​ສາ​ເຄື່ອງ​ຫມາຍ​ຄໍາ​ເຫັນ​ນໍາ​ຫນ້າ​. ເຊັ່ນດຽວກັນ, ຖ້າ ກ
trailing backslash ບໍ່ແມ່ນການເຂົ້າຮ່ວມແຖວທີ່ມີຕໍ່ໄປ, ໃສ່ "$()" ຫຼັງຈາກມັນ.

ເສັ້ນປົກກະຕິໄດ້ຮັບຜົນຜະລິດຄືກັບ.
ເສັ້ນທີ່ມີ $(MAKEEXPRESSIONS) ໄດ້ຮັບການຂະຫຍາຍ ແລະຜົນຜະລິດ.
ifdef WANTTHIS # ບໍ່ໄດ້ຮັບຜົນຜະລິດບໍ່ວ່າຈະຖືກກໍານົດຫຼືບໍ່
ອາດຈະບໍ່ໄດ້ຮັບຜົນຜະລິດ
ສິ້ນສຸດ
ລວມເອົາບາງໄຟລ໌
_include ບາງໄຟລ໌ທີ່ອາດຈະບໍ່ມີຢູ່ # ຫຼື -include
$()ລວມເຖິງການສະແດງອອກຫວ່າງເປົ່າປ້ອງກັນບໍ່ໃຫ້ຄໍາສໍາຄັນຖືກຮັບຮູ້.
# ສາຍຄໍາຄິດຄໍາເຫັນແລະເສັ້ນຫວ່າງຖືກກືນກິນ.

$()# ເວັ້ນເສຍແຕ່ວ່າເຂົາເຈົ້າຖືກໜ້າກາກດ້ວຍການສະແດງອອກທີ່ຫວ່າງເປົ່າ.
$()
ການສະແດງອອກຫວ່າງເປົ່າປ້ອງກັນ \$()
ການສືບຕໍ່ backslash ຈາກການຖືກຮັບຮູ້.

ອາດ​ຈະ​ໃຫ້​:

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

ການສະແດງອອກຫວ່າງເປົ່າປ້ອງກັນ \
ການສືບຕໍ່ backslash ຈາກການຖືກຮັບຮູ້.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -o,
--output=ຊື່ໄຟລ໌, -O, --outfail, -S, --synclines, -v, --verbose"

-a
--ການມອບໝາຍ
ນອກຈາກນີ້ຍັງປະຕິບັດການມອບຫມາຍພາຍໃນໄຟລ໌ເປັນ makepp ຈະ. ອະນິຈາ ສາຍດັ່ງກ່າວບໍ່ສາມາດເປັນໄດ້
ໃສ່ໜ້າກາກດ້ວຍ "$()", ເພາະວ່າມັນຖືກຕ້ອງຕາມກົດໝາຍທີ່ຈະສ້າງຊື່ຕົວແປດ້ວຍ
ການສະແດງອອກ. ນີ້ຍັງຮັບຮູ້ຄໍາຖະແຫຼງທີ່ "ກໍານົດ",
"ສົ່ງອອກ"/"unexport" ແລະ "override" (ສິ່ງເຫຼົ່ານີ້ສາມາດຖືກປິດບັງດ້ວຍ "$()").

-h \\%hash
--hashref=\\%hash
ອັນນີ້ອະນຸຍາດໃຫ້ຈັດສັນຄ່າຕົວແປໄດ້ລ່ວງໜ້າ, ລວມທັງຄ່າທີ່ຍາວບໍ່ງ່າຍ
ຜ່ານ​ໃນ​ຄໍາ​ສັ່ງ​. ການສະແດງອອກທີ່ຜ່ານອາດຈະເປັນລະຫັດ Perl ໃດໆທີ່ສົ່ງຄືນ a
ອ້າງອິງ hash. ນີ້ຖືກລວມເຂົ້າກັບຕົວແປອື່ນໆທີ່ສົ່ງກັບຄໍາສັ່ງ,
ລວມທັງຈາກທາງເລືອກ "--hashref" ອື່ນ.

&rm [ທາງເລືອກ ... ] ຊື່​ເອ​ກະ​ສານ ...
ລຶບໄຟລ໌ຖ້າທ່ານມີສິດອະນຸຍາດຂຽນໄດເລກະທໍລີ. ນີ້ແມ່ນສິ່ງທີ່ Unix "rm -f" ຈະ
ລຶບ, ເນື່ອງຈາກວ່າມັນມີການປົກປ້ອງພິເສດສໍາລັບການນໍາໃຊ້ແບບໂຕ້ຕອບທີ່ບໍ່ຈໍາເປັນໃນ a
Makefile.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -v, --verbose"

-f
--ກຳລັງ
ນີ້ປ້ອງກັນການຈົ່ມກ່ຽວກັບໄຟລ໌ທີ່ບໍ່ມີຢູ່. ນັ້ນແມ່ນຜົນກະທົບຂ້າງຄຽງນີ້
ທາງເລືອກມີຢູ່ໃນ Unix, ແລະອັນດຽວທີ່ເຮັດໃຫ້ຄວາມຮູ້ສຶກຢູ່ທີ່ນີ້.

-m
--metainfo
ນອກເຫນືອໄປຈາກໄຟລ໌ທີ່ໃຫ້, ນີ້ຍັງລຶບຂໍ້ມູນ meta makepp
ເກັບຮັກສາກ່ຽວກັບພວກມັນຢູ່ໃນໄດເລກະທໍລີ .makepp. ດັ່ງນັ້ນ makepp ລືມທັງຫມົດທີ່ມັນເຄີຍຮູ້
ກ່ຽວກັບໄຟລ໌ທີ່ໃຫ້. ຖ້າໄດເຣັກທໍຣີ .makepp ກາຍເປັນຫວ່າງເປົ່າຫຼັງຈາກນັ້ນ, ມັນກໍ່ຄືກັນ
ຖືກລຶບອອກ.

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

$(phony cleanold):
&rm -fm $(ເທົ່ານັ້ນ-stale **/*)

$(phony clean): cleanold
&rm -f $(wildcard **/*.[ao])

$(phony distclean): ສະອາດ
&rm -fm $(ເປົ້າໝາຍເທົ່ານັ້ນ**/*)

&ຈັດຮຽງ [ທາງເລືອກ ... ] ຊື່​ເອ​ກະ​ສານ ...
ຈັດຮຽງໄຟລ໌ທັງໝົດເຂົ້າກັນໃນລຳດັບ lexicographic. ນີ້ແມ່ນບໍ່ມີປະສິດທິພາບສໍາລັບການໃຫຍ່ຫຼາຍ
ໄຟລ໌, ເນື່ອງຈາກວ່າມັນເກີດຂຶ້ນຢ່າງສົມບູນໃນຫນ່ວຍຄວາມຈໍາ. ມັນຈະລົ້ມເຫລວຖ້າຫາກວ່າຂະຫນາດລວມຂອງ
ໄຟລ໌ທັງໝົດເກີນຄວາມຈຳທີ່ເຈົ້າມີສິດໄດ້.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=filename, -O, --outfail,
--record-size=number, -s, --separator=string, -v, --verbose"

-c perlcode
--ປຽບທຽບ=perlcode
perlcode ເປັນຕົວແທນຂອງບລັອກການຈັດຮຽງ Perl, ໂດຍມີສອງຜູ້ສະໝັກຈັດຮຽງໃນ $a ແລະ
$b.

-n
-- ຕົວເລກ
--number-sort
ການຈັດລຽງນີ້ຈັດລຽງຕາມຕົວເລກກ່ຽວກັບການເລີ່ມຕົ້ນຂອງການບັນທຶກ. ຊ່ອງຫວ່າງຊັ້ນນໍາແມ່ນ
ຂ້າມ. ທ່ານສາມາດນໍາໃຊ້ "--transform" ແລະ "--detransform" ຖ້າຕົວເລກບໍ່ໄດ້ຢູ່ທີ່
ການ​ເລີ່ມ​ຕົ້ນ.

-r
-- ປີ້ນ
ສົ່ງຜົນໄດ້ຮັບໃນຄໍາສັ່ງປີ້ນກັບກັນ. ໃຫ້ສັງເກດວ່າອັນນີ້ເຊື່ອງຕົວເລືອກມາດຕະຖານ
"-r" ເຊິ່ງຕ້ອງໃຫ້ເປັນ "--record-size".

-t perlcode
--ການຫັນປ່ຽນ=perlcode
-d perlcode
--detransform=perlcode
ຖ້າທ່ານມີລະຫັດທີ່ຊັບຊ້ອນ, ການຈັດລຽງຈະໄດ້ຮັບລາຄາແພງກວ່າໃນອັດຕາສ່ວນ
ຈໍາ​ນວນ​ຂອງ​ການ​ບັນ​ທຶກ​ການ​ n, ເພາະ​ວ່າ​ລະ​ຫັດ​ໄດ້​ຮັບ​ການ​ເອີ້ນ​ວ່າ O(n ບັນທຶກ(n)) ຄັ້ງ. ເພື່ອຫຼີກເວັ້ນການ
ວ່າ, ທ່ານສາມາດອະນຸຍາດໃຫ້ Perl ສຸມໃສ່ການຈັດລຽງ, ໂດຍທໍາອິດດັດແກ້
ສະຕຣິງ, ເຊັ່ນວ່າການສະກັດເອົາເງື່ອນໄຂການຊອກຫາທີ່ສັບສົນເກີດຂຶ້ນຫນຶ່ງຄັ້ງຕໍ່ບັນທຶກ,
ແລະປັບປຸງແກ້ໄຂໃຫ້ເຂົາເຈົ້າກັບຄືນໄປບ່ອນ, ເມື່ອພວກເຂົາຖືກຈັດຮຽງ.

ຖ້າທາງເລືອກເຫຼົ່ານີ້ຖືກມອບໃຫ້, "-- ການຫັນປ່ຽນ" perlcode ໄດ້​ຮັບ​ການ​ສ້າງ​ແຜນ​ທີ່​ການ​ບັນ​ທຶກ​ການ​
ໃນ $_ ຫນຶ່ງ ຫຼັງ ຈາກ ທີ່ ອື່ນ, ແລະ ສາ ມາດ ປັບ ປຸງ ແກ້ ໄຂ ໃຫ້ ເຂົາ ເຈົ້າ. ຫຼັງຈາກການຈັດຮຽງ, "--detransform"
perlcode ໄດ້​ຮັບ​ການ​ສ້າງ​ແຜນ​ທີ່​ກັບ​ການ​ບັນ​ທຶກ​ການ​ດັດ​ແກ້​ໃນ $_ ຫນຶ່ງ​ຫຼັງ​ຈາກ​ທີ່​ອື່ນ​, ແລະ​ສາ​ມາດ​ເຮັດ​ໄດ້​
ປັບ​ປຸງ​ແກ້​ໄຂ​ໃຫ້​ເຂົາ​ເຈົ້າ​ກັບ​ຄືນ​ໄປ​ບ່ອນ​. ປົກກະຕິແລ້ວທ່ານຈະບໍ່ໃຊ້ທັງສອງທາງເລືອກເຫຼົ່ານີ້, ເວັ້ນເສຍແຕ່
ທ່ານຕ້ອງການອອກສາຍດັດແກ້.

ການປ່ຽນສະຕຣິງເຂົ້າໃນໂຄງສ້າງຂອງມາດຖານການຈັດລຽງທີ່ສະກັດອອກມາ, ເຊິ່ງຂອງທ່ານ
"-- ປຽບທຽບ" perlcode ສາມາດເລືອກໄດ້ແມ່ນເອີ້ນວ່າ Schwartzian Transform (ST).
ການບັນຈຸທຸກສິ່ງທຸກຢ່າງເຂົ້າໄປໃນສາຍຕົວຂອງມັນເອງ, ດັ່ງນັ້ນບໍ່ມີ "-- ປຽບທຽບ" perlcode is
ຈໍາເປັນ, ອະນຸຍາດໃຫ້ການຈັດລຽງທັງຫມົດເກີດຂຶ້ນໂດຍບໍ່ມີການປະຕິບັດ Perl ລາຄາແພງ
ລະຫັດ, ເປັນທີ່ຮູ້ຈັກເປັນ Guttmann-Rosler Transform (GRT). ທ່ານສາມາດຊອກຫາຄໍາແນະນໍາໂດຍ
ຊອກຫາຊື່ເຫຼົ່ານັ້ນຢູ່ໃນເວັບ.

# ຈັດລຽງການສະແດງອອກຕົວເລກທີ່ແພງໂດຍມູນຄ່າ ($$ ປົກປ້ອງ $ ຈາກການຂະຫຍາຍ makepp)
&sort --ປຽບທຽບ 'eval($$a) <=> eval($$b)' $(input) -o >>$(output)

# ST ສໍາລັບການຈັດຮຽງກໍລະນີທີ່ບໍ່ລະອຽດອ່ອນ
&sort -t '[lc, $$_]' -c '$$a->[0] cmp $$b->[0]' -d '$$_->[1]' $(ປ້ອນຂໍ້ມູນ) - o >>$(ຜົນຜະລິດ)

# GRT ໂດຍໃຊ້ຟັງຊັນການດັດແກ້ທີ່ກໍານົດຢູ່ບ່ອນອື່ນໃນ Makeppfile
&sort -t &transform -d &detransform $(input) -o >>$(output)

-u
--uniq
--ເປັນເອກະລັກ
ຫຼັງຈາກຈັດຮຽງ, ລົບລ້າງການຊໍ້າກັນ. ເຫຼົ່ານີ້ແມ່ນເສັ້ນທີ່ຄືກັນ, ຫຼືຖ້າຫາກວ່າ
"-- ປຽບທຽບ" ທາງເລືອກແມ່ນໃຫ້, ທາງເລືອກທີ່ perlcode ລາຍງານທຽບເທົ່າ.

&ແມ່ແບບ [ທາງເລືອກ ... ] macro=ນິຍາມ ... ຊື່​ເອ​ກະ​ສານ ...
ນີ້ແມ່ນຕົວປະມວນຜົນກ່ອນມະຫາພາກ, ບໍ່ມີປະສິດທິພາບຫຼາຍເທົ່າກັບ C preprocessor ຫຼື "m4".
ເບິ່ງ & ປະມວນຜົນກ່ອນສຳລັບທາງເລືອກທີ່ມີປະສິດທິພາບກວ່າ. ມັນໄດ້ຮັບການດົນໃຈຈາກມະຫາພາກຂອງ automake
ການທົດແທນໃນ Makefile.am ແລະ Makefile.in. ແຕ່ມັນໄປເກີນກວ່ານັ້ນ. ຂໍ້ຄວາມປົກກະຕິໃດໆ
ໄປໂດຍຜ່ານການບໍ່ປ່ຽນແປງ. ໂຄງສ້າງພິເສດແມ່ນກໍານົດໄວ້ໃນຕອນຕົ້ນດ້ວຍ "@". ເຂົາເຈົ້າ
ຕ້ອງພໍດີກັບແຖວໜຶ່ງ ເວັ້ນເສຍແຕ່ເຈົ້າຈະຜ່ານໜຶ່ງ "-r, --record-size" ຫຼື "--separator".

@# ຄວາມຄິດເຫັນ @
ໃຫ້ສັງເກດວ່າເຖິງວ່າຈະມີການກູ້ຢືມຈາກ script "#" line end syntax ຄໍາເຫັນ, ນີ້ແມ່ນຫນຶ່ງ
ຄຳເຫັນໃນແຖວ.

@ມາໂຄຣ@
ການກໍ່ສ້າງນີ້ຖືກແທນທີ່ດ້ວຍມູນຄ່າຂອງ ມາໂຄຣ. ຊື່ Macro ຕ້ອງເລີ່ມຕົ້ນດ້ວຍ
ຕົວອັກສອນ ຫຼື ຂີດກ້ອງ, ຕິດຕາມດ້ວຍຕົວເລກຂອງຕົວອັກສອນ, ຂີດກ້ອງ, ລົບ ຫຼື
ຈຸດໆ. ບໍ່ຄືກັບຊື່ makepp, underscore ແລະ minus ບໍ່ທຽບເທົ່າ.

@ມາໂຄຣ(arg1,arg2...)@
ເຊັ່ນດຽວກັນກັບອັນທໍາອິດ, ແຕ່ parameterized. args ແທນ $1 ຫາ $9 ຫຼື
"${ໝາຍເລກ}" ໃນມູນຄ່າ. ຫຼື, ຖ້າຄ່າແມ່ນຫນ້າທີ່ Perl, ພວກມັນຖືກສົ່ງຜ່ານເປັນ
ຕົວກໍານົດການປົກກະຕິ. ຜົນໄດ້ຮັບຫຼັງຈາກນັ້ນທົດແທນການກໍ່ສ້າງທັງຫມົດ. ລະດັບຫນຶ່ງ
ການສ້າງຮັງມະຫາພາກແມ່ນເປັນໄປໄດ້ທີ່ args ໃນວົງເລັບອາດປະກອບດ້ວຍທົ່ງພຽງ
"@MACRO@" invocations, ເຊັ່ນດຽວກັບ "@f(@x@)@", ບ່ອນທີ່ "@x@" ໄດ້ຮັບການຂະຫຍາຍກ່ອນທີ່ຈະເປັນ.
ທົດແທນເຂົ້າໄປໃນຮ່າງກາຍຂອງ "f".

@ລວມ(ຊື່​ເອ​ກະ​ສານ)@
ນີ້ແມ່ນມະຫາພາກທີ່ກຳນົດໄວ້ລ່ວງໜ້າເທົ່ານັ້ນ. ມັນໄດ້ຖືກແທນທີ່ໂດຍ & ແມ່ແບບທີ່ປຸງແຕ່ງ
ເນື້ອໃນຂອງໄຟລ໌ທີ່ມີຊື່. ເຊັ່ນດຽວກັນກັບມະຫາພາກທັງຫມົດນີ້ສາມາດເກີດຂຶ້ນໃນກາງຂອງ a
ສາຍ. ອະນິຈາ, ເພາະວ່າ, "-S, --synclines" ບໍ່ສົນໃຈການລວມໄຟລ໌, ເຮັດໃຫ້
ທຸກຢ່າງເບິ່ງຄືວ່າມາຈາກເອກະສານລວມ.

@ມາໂຄຣ=ຄໍານິຍາມ@
@ມາໂຄຣ?=ຄໍານິຍາມ@
ນີ້ກໍານົດ macro ພາຍໃນໄຟລ໌. ອັນນີ້ຖືກແທນທີ່ໂດຍບໍ່ມີຫຍັງເລີຍ. ທີ່​ສອງ
ແບບຟອມມີຜົນພຽງແຕ່ຖ້າ macro ບໍ່ໄດ້ຖືກກໍານົດ, ອາດຈະຢູ່ໃນຄໍາສັ່ງ
ເສັ້ນ.

@ມາໂຄຣ { Perlcode }@
ອັນນີ້ຍັງກຳນົດຄ່າມະຫາພາກ, ເນື້ອເລື່ອງທີ່ເປັນຍ່ອຍ Perl. ການໂຕ້ຖຽງ, ຖ້າ
ມີອັນໃດ, ໄດ້ຜ່ານເຂົ້າເປັນ @_.

@{ Perlcode }@
ນີ້ດໍາເນີນການ Perlcode ທັນທີແລະຖືກແທນທີ່ດ້ວຍມູນຄ່າກັບຄືນ.

ມາຮອດປະຈຸ, ພວກເຮົາເຫັນພຽງແຕ່ຫນຶ່ງ syntax ສໍາລັບການຝັງສິ່ງທີ່ພິເສດ. ຍັງມີອີກ
syntax ຫຼາຍເສັ້ນ, ແລະທັງສອງອະນຸຍາດໃຫ້ມີການປ່ຽນແປງເພື່ອສະກັດກັ້ນເສັ້ນໃຫມ່. ເຫຼົ່ານີ້ແມ່ນ
builtin syntaxes (ຊຶ່ງສາມາດ configured ໂດຍຕົວເລືອກຂ້າງລຸ່ມນີ້). ທີ່ນີ້ ພິເສດ ຫຍໍ້​ມາ​ຈາກ
ການກໍ່ສ້າງໃດໆທີ່ສະແດງຂ້າງເທິງ:

@ພິເສດ@
@ພິເສດ@\
ນີ້ສາມາດປະກົດຕົວຄູນຢູ່ບ່ອນໃດກໍໄດ້ໃນແຖວ. ການປ່ຽນແປງທັນທີປະຕິບັດຕາມໂດຍ
"\" ເຮັດວຽກຢູ່ທ້າຍແຖວເທົ່ານັ້ນ. ມັນຍັງທົດແທນການຢຸດແຖວຕໍ່ໄປນີ້.

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

#@@# ອີກ2ເສັ້ນຈະຫາຍໄປ@@
echo ທ່ານກໍາລັງແລ່ນສະບັບທີ່ຖອນການຕິດຕັ້ງຂອງ script ນີ້
#@@
# @@REPLAMCENT@@
echo ບາງສິ່ງບາງຢ່າງອື່ນຈະຢູ່ທີ່ນີ້
#@@

ຕົວຢ່າງທີ່ບໍ່ມີຄວາມຫມາຍສະແດງໃຫ້ເຫັນເຖິງຄວາມເປັນໄປໄດ້ຕ່າງໆ:

@m1=ບາງຄຳນິຍາມ@\
@m2=foo $1 bar@\
@middle_of_arg=iddl@\
@m1@ @m2(m@middle_of_arg@e)@
@@m2(ຫຼາຍສາຍ)@@
...
@@ ຂໍ້ຄວາມທຳມະດາ 1+2 = @{ 1+2 }@

ກາຍເປັນ

ບາງຄໍານິຍາມ foo ແຖບກາງ
foo ຫຼາຍເສັ້ນແຖບຂໍ້ຄວາມທໍາມະດາ 1 + 2 = 3

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=filename, -O, --outfail, -r,
--record-size=number, --separator=string, -S, --synclines, -v, --verbose"

-d
-- ກໍານົດ
ແທນທີ່ພຽງແຕ່ຕົວຢ່າງຂອງມະຫາພາກທີ່ຖືກກໍານົດໄວ້ຕົວຈິງ. ໂດຍບໍ່ມີທາງເລືອກນີ້
ອັນທີ່ບໍ່ໄດ້ກຳນົດໄວ້ທັງໝົດຈະຖືກແທນທີ່ໂດຍບໍ່ມີຫຍັງເລີຍ.

-h \\%hash
--hashref=\\%hash
ອັນນີ້ອະນຸຍາດໃຫ້ຈັດແບ່ງຄ່າມະຫາພາກໄວ້ລ່ວງໜ້າ, ລວມທັງຄ່າທີ່ຍາວບໍ່ງ່າຍ
ຜ່ານ​ໃນ​ຄໍາ​ສັ່ງ​. ການສະແດງອອກທີ່ຜ່ານອາດຈະເປັນລະຫັດ Perl ໃດໆທີ່ສົ່ງຄືນ a
ອ້າງອິງ hash. ນີ້ຖືກລວມເຂົ້າກັບ macros ອື່ນໆທີ່ສົ່ງກັບຄໍາສັ່ງ,
ລວມທັງຈາກທາງເລືອກ "--hashref" ອື່ນ. ຄ່າ hash ອາດຈະເປັນລະຫັດ
ການອ້າງອິງ, ໃນກໍລະນີນັ້ນ, ຟັງຊັນຖືກເອີ້ນ, ເຊັ່ນດຽວກັບ "@macro { Perlcode }@"
ຄໍານິຍາມ.

-s /prefix/suffix/
--simple=/prefix/suffix/
ການນໍາໃຊ້ ຄຳ ນຳ ໜ້າ ແລະ បច្ច័យ ກ່ອນ​ແລະ​ຫຼັງ ພິເສດ ຕາມລໍາດັບແທນທີ່ຈະເປັນ "@". ໄດ້
ລັກສະນະທໍາອິດແມ່ນຕົວແຍກແລະບໍ່ຈໍາເປັນຕ້ອງເປັນ slash. ຄ່າເຫຼົ່ານີ້ແມ່ນ Perl
regexps. ເຈົ້າບໍ່ຄວນແນະນຳການຈັດກຸ່ມເຊັ່ນ "(...)", ແຕ່ "(?:...)" ແມ່ນດີ.

-m /prefix/suffix/afterprefix/[aftersuffix/]
--multiline=/prefix/suffix/afterprefix/[aftersuffix/]
ການນໍາໃຊ້ ຄຳ ນຳ ໜ້າ, បច្ច័យ ແລະ ຄຳນຳໜ້າ ກ່ອນ​ແລະ​ຫຼັງ ພິເສດ ແລະໃນຕອນທ້າຍຂອງ
block ຕາມລໍາດັບແທນທີ່ຈະເປັນ "@@". ຖ້າ ຄຳຕໍ່ທ້າຍ ແມ່ນໃຫ້, ຊື່ມະຫາພາກ
ຕ້ອງໄດ້ຮັບການຊ້ໍາກ່ອນທີ່ຈະມັນ. ລັກສະນະທໍາອິດແມ່ນຕົວແຍກແລະບໍ່ຈໍາເປັນຕ້ອງເປັນ
ທັບ. ຕົວຢ່າງເຊັ່ນ XML-ish, ທີ່ທ່ານຕ້ອງເພີ່ມ "--defined" ຖ້າທ່ານຕ້ອງການ
ຮັກສາແທັກອື່ນ, ບໍ່ໄດ້ກໍານົດໂດຍທ່ານ:

--defined --simple=|<|/>| --multiline=|<|>| |

ຫຼື, ດີກວ່າ, ໃຊ້ຄໍາແນະນໍາການປຸງແຕ່ງ " ", ມີຈຸດປະສົງດັ່ງກ່າວ:

--defined --simple='|<\?|\?>|'

ຫຼື, ຖ້າທ່ານຕ້ອງການສົມທົບອັນນີ້ກັບ "&entity;" syntax ສໍາລັບ macro ງ່າຍດາຍ
ການທົດແທນ (ຮັກສາຕົວເລກ "☺" ທີ່ບໍ່ແມ່ນຄໍາເຫັນ):

--defined --simple='_(?:&(?!#)|<\?)_(?:;|\?>)_'

&ແຕະ [ທາງເລືອກ ... ] ຊື່​ເອ​ກະ​ສານ ...
ອັບເດດການດັດແກ້ ແລະເວລາເຂົ້າເຖິງຂອງແຕ່ລະໄຟລ໌ມາເຖິງຕອນນີ້. ຖ້າໄຟລ໌
ບໍ່ມີ, ມັນຖືກສ້າງຂຶ້ນ.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -v, --verbose"

&ຖອນການຕິດຕັ້ງ [ທາງເລືອກ ... ] [ຊື່​ເອ​ກະ​ສານ ... ]
ຖອນການຕິດຕັ້ງໄຟລ໌ທີ່ຕິດຕັ້ງໄວ້ກ່ອນຫນ້ານີ້ໂດຍ & ຕິດຕັ້ງ. ໄດ້ ຊື່​ເອ​ກະ​ສານs ແມ່ນ logfiles ຂຽນ
ໂດຍ & ຕິດ​ຕັ້ງ. ຖ້າບໍ່ມີອັນໃດຖືກໃຫ້, ຫຼືທາງເລືອກ "--inpipe", ອ່ານໄຟລ໌ບັນທຶກເລີ່ມຕົ້ນ
ຂອງ & ຕິດ​ຕັ້ງ.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -i,
--inpipe=shellcommand, -I, --infail, -v, --verbose"

&uniq [ທາງເລືອກ ... ] ຊື່​ເອ​ກະ​ສານ ...
ຍົກເລີກທັງໝົດ ຍົກເວັ້ນໜຶ່ງສາຍສະເໝີກັນ.

"ຕົວເລືອກມາດຕະຖານ": "-A, --args-file, --arguments-file=filename, -f, --force, -i,
--inpipe=shellcommand, -I, --infail, -o, --output=filename, -O, --outfail, -r,
--record-size=number, -s, --separator=string, -S, --synclines, -v, --verbose"

-c perlcode
--ປຽບທຽບ=perlcode
ນີ້ Perlcode ໄດ້ຮັບເສັ້ນກ່ອນໜ້າ ແລະປັດຈຸບັນໃນ $a ແລະ $b ແລະຈະກັບຄືນມາ
ຄວາມຈິງຖ້າມັນພິຈາລະນາສອງເສັ້ນເທົ່າທຽມກັນ.

&uniq --compare='lc( $$a ) eq lc $$b' $(inputs) -o $(output)

ສາມາດຈຳລອງໄດ້ ຄໍາສັ່ງ
ສິ່ງຕ່າງໆບໍ່ໄດ້ສ້າງຂຶ້ນໃນ, ແຕ່ສາມາດບັນລຸໄດ້ດ້ວຍຄໍາສັ່ງອື່ນໆ:

awk ໃຊ້ &sed.

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

cpp ໃຊ້ &preprocess ຫຼື &ແມ່ແບບ.

ວັນ
ທັງສອງສ່ວນເຫຼົ່ານີ້ເຮັດສິ່ງດຽວກັນຄື:

&expr ເວລາທ້ອງຖິ່ນ
&expr gmtime

ທີ່ບໍ່ຖືກຕ້ອງ
ໃຊ້ &expr ໂດຍບໍ່ມີການໂຕ້ຖຽງ ຫຼື 0.

ຫົວຫນ້າ
ຫາງ
ທ່ານສາມາດບັນລຸຜົນໄດ້ຮັບດຽວກັນກັບ &grep ຫຼື "&cut --lines":

&grep 1..10 ໄຟລ໌ # ສິບແຖວທຳອິດ
&grep 10..eof ໄຟລ໌ # ທຸກແຖວຕັ້ງແຕ່ທີສິບເປັນຕົ້ນໄປ
&cut --lines -10..-1 ໄຟລ໌ # ສິບແຖວສຸດທ້າຍ

ໃຫ້ສັງເກດວ່າ 1..10 ໃນ & grep ແມ່ນຕົວເລກແຖວຂອງ Perl flip-flop, ເຊິ່ງເຮັດໃຫ້ຫນ້າລໍາຄານ.
ເລີ່ມຕົ້ນທີ່ 1. ຢ່າເລີ່ມຕົ້ນທີ່ 0, ຫຼື flip-flop ຈະບໍ່ກາຍເປັນຄວາມຈິງ.

fmt ນີ້ແມ່ນກ່າວເຖິງທີ່ນີ້ນັບຕັ້ງແຕ່ Perl ສະຫນອງຫນ້າທີ່ທີ່ກ່ຽວຂ້ອງ. ຢ່າງ ໃດ ກໍ ຕາມ ຂ້າ ພະ ເຈົ້າ ໄດ້
ບັນຫາການນໍາໃຊ້ການປະກາດ "ຮູບແບບ" ໃນ makefile. ສິ່ງ​ທີ່​ເຮັດ​ວຽກ​ແມ່ນ​
ຟັງຊັນ "formline". ຕົວຢ່າງເຊັ່ນການຫັນປ່ຽນໄຟລ໌ csv ປະກອບດ້ວຍຊື່ແລະ
ລາຄາເປັນຮູບແບບຕາຕະລາງ:

ຍ່ອຍ csv2txt {
formline "\@<<<<<<<<<<<<<<< ^#############\n", ແຍກ ',';
$_ = $^A;
$^A = '';
}

%.txt: %.csv
&sed &csv2txt $(input) -o $(output)

m4 ໃຊ້ &preprocess ຫຼື &ແມ່ແບບ.

ແມ່ນ rm
ໃຊ້ &rm.

tr ໃຊ້ &sed.

ໃຊ້ makepp_builtins ອອນລາຍໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

Linux ຄຳ ສັ່ງ

Ad




×
ການ​ໂຄ​ສະ​ນາ
?ຊື້ເຄື່ອງ, ຈອງ, ຫຼືຊື້ທີ່ນີ້ — ບໍ່ມີຄ່າໃຊ້ຈ່າຍ, ຊ່ວຍໃຫ້ການບໍລິການຟຣີ.