ນີ້ແມ່ນຄໍາສັ່ງ edposix ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
ed — ແກ້ໄຂຂໍ້ຄວາມ
ສະຫຼຸບສັງລວມ
ed [-ປ string] [−ສ] [ເອກະສານ]
ລາຍລະອຽດ
ໄດ້ ed utility ແມ່ນຕົວແກ້ໄຂຂໍ້ຄວາມທີ່ເນັ້ນໃສ່ເສັ້ນທີ່ໃຊ້ສອງໂຫມດ: ຄໍາສັ່ງ ຮູບແບບການ ແລະ ການປ້ອນຂໍ້ມູນ
ຮູບແບບການ. ໃນຮູບແບບຄໍາສັ່ງ, ລັກສະນະການປ້ອນຂໍ້ມູນຈະຖືກຕີລາຄາເປັນຄໍາສັ່ງ, ແລະການປ້ອນຂໍ້ມູນ
ຮູບແບບພວກມັນຈະຖືກຕີຄວາມວ່າເປັນຂໍ້ຄວາມ. ເບິ່ງພາກສ່ວນຄຳອະທິບາຍຂະຫຍາຍ.
ຖ້າ operand ເປັນ '−', ຜົນໄດ້ຮັບແມ່ນບໍ່ໄດ້ລະບຸ.
OPTIONS
ໄດ້ ed ຜົນປະໂຫຍດຈະຕ້ອງສອດຄ່ອງກັບປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008, ສ່ວນ 12.2,
ຜົນປະໂຫຍດ syntax ຄູ່ມືແນະນໍາ, ຍົກເວັ້ນສໍາລັບການນໍາໃຊ້ທີ່ບໍ່ໄດ້ກໍານົດຂອງ '−'.
ທາງເລືອກຕໍ່ໄປນີ້ຈະໄດ້ຮັບການສະຫນັບສະຫນູນ:
-ປ string ການນໍາໃຊ້ string ເປັນສະຕຣິງ prompt ເມື່ອຢູ່ໃນໂຫມດຄໍາສັ່ງ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ຈະມີ
ບໍ່ມີສະຕຣິງເຕືອນ.
−ສ ສະກັດກັ້ນການຂຽນການນັບ byte ໂດຍ e, E, r, ແລະ w ຄໍາສັ່ງແລະຂອງ '!'
ແຈ້ງການຫຼັງຈາກທີ່!ຄໍາສັ່ງ.
ດໍາເນີນງານ
operand ຕໍ່ໄປນີ້ຈະໄດ້ຮັບການສະຫນັບສະຫນູນ:
ເອກະສານ ຖ້າ ເອກະສານ ການໂຕ້ຖຽງແມ່ນໃຫ້, ed ຈະຈໍາລອງເປັນ e ຄໍາສັ່ງກ່ຽວກັບໄຟລ໌ທີ່ມີຊື່
ໂດຍຊື່ເສັ້ນທາງ, ເອກະສານ, ກ່ອນທີ່ຈະຍອມຮັບຄໍາສັ່ງຈາກວັດສະດຸປ້ອນມາດຕະຖານ.
STDIN
ການປ້ອນຂໍ້ມູນມາດຕະຖານຈະເປັນໄຟລ໌ຂໍ້ຄວາມທີ່ປະກອບດ້ວຍຄຳສັ່ງ, ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນ
ພາກສ່ວນຄຳອະທິບາຍຂະຫຍາຍ.
ປັດໄຈນໍາເຂົ້າ ເອກະສານ
ໄຟລ໌ປ້ອນຂໍ້ມູນຈະຕ້ອງເປັນໄຟລ໌ຂໍ້ຄວາມ.
ENVIRONMENT ຄວາມຮັບຜິດຊອບ
ຕົວແປສະພາບແວດລ້ອມຕໍ່ໄປນີ້ຈະສົ່ງຜົນກະທົບຕໍ່ການປະຕິບັດ ed:
ຫນ້າທໍາອິດ ກໍານົດຊື່ເສັ້ນທາງຂອງໄດເລກະທໍລີຫນ້າທໍາອິດຂອງຜູ້ໃຊ້.
ພາສາ ໃຫ້ຄ່າເລີ່ມຕົ້ນສໍາລັບຕົວແປສາກົນທີ່ບໍ່ໄດ້ຕັ້ງ ຫຼື
null. (ເບິ່ງປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008, ສ່ວນ 8.2,
Internationalization Variables ເພື່ອຄວາມກ້າວໜ້າຂອງການຫັນເປັນສາກົນ
ຕົວແປທີ່ໃຊ້ເພື່ອກໍານົດຄ່າຂອງປະເພດທ້ອງຖິ່ນ.)
LC_ALL ຖ້າຕັ້ງເປັນຄ່າສະຕຣິງທີ່ບໍ່ຫວ່າງເປົ່າ, ລົບລ້າງຄ່າຂອງອັນອື່ນທັງໝົດ
ຕົວແປສາກົນ.
LC_COLLATE
ກໍານົດສະຖານທີ່ສໍາລັບພຶດຕິກໍາຂອງໄລຍະ, ຫ້ອງຮຽນທຽບເທົ່າ, ແລະ multi-
ອົງປະກອບການລວບລວມຕົວລະຄອນພາຍໃນສໍານວນປົກກະຕິ.
LC_CTYPE ກໍານົດທ້ອງຖິ່ນສໍາລັບການຕີຄວາມລໍາດັບຂອງ bytes ຂອງຂໍ້ມູນຂໍ້ຄວາມ
ເປັນຕົວອັກສອນ (ຕົວຢ່າງ, single-byte ກົງກັນຂ້າມກັບ multi-byte ຕົວອັກສອນໃນ
arguments ແລະ input ໄຟລ໌) ແລະພຶດຕິກໍາຂອງຫ້ອງຮຽນລັກສະນະພາຍໃນປົກກະຕິ
ສຳ ນວນ.
LC_MESSAGES
ກໍານົດທ້ອງຖິ່ນທີ່ຄວນຈະຖືກນໍາໃຊ້ເພື່ອຜົນກະທົບຕໍ່ຮູບແບບແລະເນື້ອໃນຂອງ
ຂໍ້ຄວາມການວິນິໄສທີ່ຂຽນເປັນຂໍ້ຜິດພາດມາດຕະຖານ ແລະຂໍ້ຄວາມທີ່ໃຫ້ຂໍ້ມູນຖືກຂຽນ
ຜົນຜະລິດມາດຕະຖານ.
NLSPATH ກໍານົດສະຖານທີ່ຂອງລາຍການຂໍ້ຄວາມສໍາລັບການປະມວນຜົນຂອງ LC_MESSAGES.
ASYNCHRONOUS ເຫດການ
ໄດ້ ed ຜົນປະໂຫຍດຈະຕ້ອງປະຕິບັດມາດຕະຖານສໍາລັບສັນຍານທັງຫມົດ (ເບິ່ງເຫດການ ASYNCHRONOUS
ສ່ວນໃນ ສ່ວນ 1.4, ຜົນປະໂຫຍດ ລາຍລະອຽດ ຄ່າເລີ່ມຕົ້ນ) ໂດຍມີຂໍ້ຍົກເວັ້ນດັ່ງຕໍ່ໄປນີ້:
ເຊັນຊື່ ed utility ຈະຂັດຂວາງກິດຈະກໍາໃນປະຈຸບັນຂອງມັນ, ຂຽນ string "?\n" to
ຜົນຜະລິດມາດຕະຖານ, ແລະກັບຄືນໄປບ່ອນຮູບແບບຄໍາສັ່ງ (ເບິ່ງລາຍລະອຽດທີ່ຂະຫຍາຍ
ພາກ).
SIGHUP ຖ້າ buffer ບໍ່ຫວ່າງເປົ່າແລະມີການປ່ຽນແປງນັບຕັ້ງແຕ່ການຂຽນຄັ້ງສຸດທ້າຍ, the ed ຜົນປະໂຫຍດ
ຈະພະຍາຍາມຂຽນສໍາເນົາຂອງ buffer ໃນໄຟລ໌. ຫນ້າທໍາອິດ, ໄຟລ໌ທີ່ມີຊື່
ed.hup ໃນໄດເລກະທໍລີປະຈຸບັນຈະຖືກນໍາໃຊ້; ຖ້າມັນລົ້ມເຫລວ, ໄຟລ໌ທີ່ມີຊື່
ed.hup ໃນໄດເລກະທໍລີທີ່ມີຊື່ໂດຍ ຫນ້າທໍາອິດ ຕົວແປສະພາບແວດລ້ອມຈະຖືກໃຊ້. ໃນ
ໃນກໍລະນີໃດກໍ່ຕາມ, ໄດ້ ed utility ຈະອອກໂດຍບໍ່ມີການຂຽນໄຟລ໌ກັບປະຈຸບັນ
ຈື່ຊື່ເສັ້ນທາງແລະໂດຍບໍ່ມີການກັບຄືນສູ່ຮູບແບບຄໍາສັ່ງ.
SIGQUIT ໄດ້ ed ຜົນປະໂຫຍດຈະບໍ່ສົນໃຈເຫດການນີ້.
STDOUT
ຄຳສັ່ງການແກ້ໄຂຕ່າງໆ ແລະຄຸນສົມບັດການກະຕຸ້ນເຕືອນ (ເບິ່ງ -ປ) ຂຽນໃສ່ຜົນຜະລິດມາດຕະຖານ, ເປັນ
ອະທິບາຍໄວ້ໃນສ່ວນຂະຫຍາຍຄຳອະທິບາຍ.
ສະດຸດ
ຄວາມຜິດພາດມາດຕະຖານຈະຖືກນໍາໃຊ້ສໍາລັບຂໍ້ຄວາມວິນິດໄສເທົ່ານັ້ນ.
OUTPUT ເອກະສານ
ໄຟລ໌ຜົນຜະລິດຈະເປັນໄຟລ໌ຂໍ້ຄວາມທີ່ມີຮູບແບບແມ່ນຂຶ້ນກັບຄໍາສັ່ງການແກ້ໄຂ
ໃຫ້.
ອະທິບາຍ ລາຍລະອຽດ
ໄດ້ ed ຜົນປະໂຫຍດຈະຕ້ອງດໍາເນີນການກ່ຽວກັບສໍາເນົາຂອງໄຟລ໌ທີ່ມັນກໍາລັງດັດແກ້; ການປ່ຽນແປງທີ່ເຮັດຕໍ່ກັບສໍາເນົາ
ຈະບໍ່ມີຜົນກະທົບກັບໄຟລ໌ຈົນກ່ວາ a w (ຂຽນ) ຄໍາສັ່ງຖືກມອບໃຫ້. ສໍາເນົາຂອງຂໍ້ຄວາມ
ເອີ້ນວ່າ buffer.
ຄໍາສັ່ງທີ່ຈະ ed ມີໂຄງສ້າງທີ່ງ່າຍດາຍແລະປົກກະຕິ: ສູນ, ຫນຶ່ງ, ຫຼືສອງ ທີ່ຢູ່ ປະຕິບັດຕາມ
ໂດຍລັກສະນະດຽວ ຄໍາສັ່ງ, ອາດຈະປະຕິບັດຕາມໂດຍພາລາມິເຕີກັບຄໍາສັ່ງນັ້ນ. ເຫຼົ່ານີ້
ທີ່ຢູ່ລະບຸຫນຶ່ງຫຼືຫຼາຍແຖວໃນ buffer. ທຸກໆຄໍາສັ່ງທີ່ຕ້ອງການທີ່ຢູ່
ມີທີ່ຢູ່ເລີ່ມຕົ້ນ, ດັ່ງນັ້ນທີ່ຢູ່ມັກຈະຖືກລະເວັ້ນ. ຖ້າ -ປ ທາງເລືອກ
ຖືກກໍານົດໄວ້, ຂໍ້ຄວາມ prompt ຈະຖືກຂຽນໃສ່ຜົນໄດ້ຮັບມາດຕະຖານກ່ອນທີ່ແຕ່ລະຄໍາສັ່ງແມ່ນ
ອ່ານ
ໂດຍທົ່ວໄປ, ພຽງແຕ່ຫນຶ່ງຄໍາສັ່ງສາມາດປາກົດຢູ່ໃນເສັ້ນ. ບາງຄໍາສັ່ງອະນຸຍາດໃຫ້ຂໍ້ຄວາມເປັນ
ວັດສະດຸປ້ອນ. ຂໍ້ຄວາມນີ້ຖືກຈັດໃສ່ໃນບ່ອນທີ່ເຫມາະສົມໃນ buffer. ໃນຂະນະທີ່ ed ກໍາລັງຍອມຮັບ
ຂໍ້ຄວາມ, ມັນໄດ້ຖືກກ່າວວ່າຢູ່ໃນ ການປ້ອນຂໍ້ມູນ ຮູບແບບການ. ໃນຮູບແບບນີ້, ບໍ່ມີຄໍາສັ່ງຈະຖືກຮັບຮູ້; ທັງໝົດ
ການປ້ອນຂໍ້ມູນແມ່ນພຽງແຕ່ເກັບກໍາ. ໂໝດການປ້ອນຂໍ້ມູນຖືກຢຸດໂດຍການເຂົ້າເສັ້ນທີ່ປະກອບດ້ວຍສອງອັນ
ຕົວລະຄອນ: ກ ('.') ຕາມດ້ວຍ ກ . ເສັ້ນນີ້ບໍ່ໄດ້ຖືກພິຈາລະນາເປັນສ່ວນຫນຶ່ງ
ຂອງການປ້ອນຂໍ້ຄວາມ.
ເປັນປົກກະຕິ ສຳ ນວນ in ed
ໄດ້ ed ຜົນປະໂຫຍດຈະຕ້ອງສະຫນັບສະຫນູນການສະແດງອອກປົກກະຕິພື້ນຖານ, ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນຖານ
ປະລິມານຄໍານິຍາມຂອງ POSIX.1-2008, ສ່ວນ 9.3, ພື້ນຖານ ເປັນປົກກະຕິ ສຳ ນວນ. ຕັ້ງແຕ່ປົກກະຕິ
ສະແດງອອກໃນ ed ຖືກຈັບຄູ່ກັບເສັ້ນດຽວສະເໝີ (ບໍ່ລວມການສິ້ນສຸດ
ຕົວອັກສອນ), ບໍ່ເຄີຍຕໍ່ຕ້ານພາກສ່ວນໃຫຍ່ຂອງຂໍ້ຄວາມ, ບໍ່ມີທາງສໍາລັບ a
ການສະແດງອອກປົກກະຕິເພື່ອຈັບຄູ່ a .
A null RE ຈະທຽບເທົ່າກັບ RE ຫຼ້າສຸດທີ່ພົບ.
ການສະແດງອອກປົກກະຕິແມ່ນໃຊ້ໃນທີ່ຢູ່ເພື່ອກໍານົດເສັ້ນ, ແລະໃນບາງຄໍາສັ່ງ (ສໍາລັບ
ຍົກຕົວຢ່າງ, the s substitute command) ເພື່ອກໍານົດບາງສ່ວນຂອງເສັ້ນທີ່ຈະປ່ຽນແທນ.
ທີ່ຢູ່ in ed
ທີ່ຢູ່ໃນ ed ກ່ຽວຂ້ອງກັບເສັ້ນປະຈຸບັນ. ໂດຍທົ່ວໄປແລ້ວ, ເສັ້ນປະຈຸບັນແມ່ນເສັ້ນສຸດທ້າຍ
ໄດ້ຮັບຜົນກະທົບຈາກຄໍາສັ່ງ. ໝາຍເລກແຖວປັດຈຸບັນແມ່ນທີ່ຢູ່ຂອງແຖວປັດຈຸບັນ. ຖ້າ
ແກ້ໄຂ buffer ບໍ່ຫວ່າງເປົ່າ, ຄ່າເບື້ອງຕົ້ນຂອງແຖວປັດຈຸບັນຈະເປັນແຖວສຸດທ້າຍ
buffer ການແກ້ໄຂ; ຖ້າບໍ່ດັ່ງນັ້ນ, ສູນ.
ທີ່ຢູ່ຈະໄດ້ຮັບການກໍ່ສ້າງດັ່ງຕໍ່ໄປນີ້:
1. ໄດ້ ລັກສະນະ ('.') ຈະແກ້ໄຂບັນຫາເສັ້ນໃນປັດຈຸບັນ.
2. ທ ລັກສະນະ ('$') ຈະແກ້ໄຂແຖວສຸດທ້າຍຂອງ buffer ແກ້ໄຂ.
3. ຈຳນວນທົດສະນິຍົມບວກ n ຈະກ່າວເຖິງ nແຖວທີຂອງການແກ້ໄຂ buffer.
4. ທ -x ຄູ່ຕົວອັກສອນ ("'x") ຈະກ່າວເຖິງເສັ້ນທີ່ມີເຄື່ອງຫມາຍ
ລັກສະນະຊື່ x, ເຊິ່ງຈະເປັນຕົວພິມນ້ອຍຈາກຊຸດຕົວອັກສອນແບບພົກພາ.
ມັນຈະເປັນຂໍ້ຜິດພາດຖ້າຕົວລະຄອນບໍ່ໄດ້ຖືກຕັ້ງໃຫ້ໝາຍເສັ້ນ ຫຼື ແຖວ
ທີ່ຖືກໝາຍວ່າບໍ່ມີຢູ່ໃນບັຟເຟີການແກ້ໄຂ.
5. A BRE ອ້ອມຮອບໂດຍ ຕົວອັກສອນ ('/') ຈະກ່າວເຖິງແຖວທໍາອິດທີ່ພົບໂດຍ
ຄົ້ນຫາໄປຂ້າງຫນ້າຈາກເສັ້ນດັ່ງຕໍ່ໄປນີ້ເສັ້ນປະຈຸບັນໄປສູ່ການສິ້ນສຸດຂອງການແກ້ໄຂ
buffer ແລະຢຸດຢູ່ແຖວທໍາອິດທີ່ເສັ້ນຍົກເວັ້ນການສິ້ນສຸດ
ກົງກັບ BRE. BRE ປະກອບດ້ວຍ null BRE delimited ໂດຍຄູ່ຂອງ
ຕົວອັກສອນຈະຕ້ອງກ່າວເຖິງແຖວຕໍ່ໄປທີ່ແຖວທີ່ບໍ່ລວມເອົາ
ການຢຸດເຊົາ ກົງກັບ BRE ຫຼ້າສຸດທີ່ພົບ. ນອກຈາກນັ້ນ, ທີສອງ
ສາມາດຖືກຍົກເວັ້ນໃນຕອນທ້າຍຂອງແຖວຄໍາສັ່ງ. ພາຍໃນ BRE, ກ
- ຄູ່ ("\/") ຈະເປັນຕົວແທນຂອງຕົວຫນັງສື ແທນ BRE
ຕົວຂັ້ນ. ຖ້າຈໍາເປັນ, ການຄົ້ນຫາຈະກວມເອົາຈຸດເລີ່ມຕົ້ນຂອງ buffer
ແລະສືບຕໍ່ເຖິງແລະລວມທັງເສັ້ນປະຈຸບັນ, ດັ່ງນັ້ນ buffer ທັງຫມົດແມ່ນ
ຄົ້ນຫາ.
6. A BRE ອ້ອມຮອບໂດຍ ຕົວອັກສອນ ('?') ຈະກ່າວເຖິງແຖວທໍາອິດທີ່ພົບເຫັນ
ໂດຍການຊອກຫາທາງຫຼັງຈາກເສັ້ນກ່ອນເສັ້ນປະຈຸບັນໄປສູ່ຈຸດເລີ່ມຕົ້ນ
ຂອງການແກ້ໄຂ buffer ແລະຢຸດຢູ່ແຖວທໍາອິດທີ່ເສັ້ນບໍ່ລວມເອົາ
ການຢຸດເຊົາ ກົງກັບ BRE. BRE ປະກອບດ້ວຍ null BRE delimited ໂດຍ a
ຄູ່ຂອງ ຕົວອັກສອນ ("??") ຈະກ່າວເຖິງແຖວທີ່ຜ່ານມາສໍາລັບການທີ່
ເສັ້ນບໍ່ລວມເຖິງການສິ້ນສຸດ ກົງກັບ BRE ຫຼ້າສຸດທີ່ພົບ. ໃນ
ນອກຈາກນັ້ນ, ທີສອງ ສາມາດຖືກຍົກເວັ້ນໃນຕອນທ້າຍຂອງແຖວຄໍາສັ່ງ.
ພາຍໃນ BRE, ກ - ຄູ່ ("\?") ຈະເປັນຕົວແທນຂອງຕົວຫນັງສື
ແທນຕົວຂັ້ນ BRE. ຖ້າຈໍາເປັນ, ການຄົ້ນຫາຈະຕ້ອງຫໍ່
ປະມານໃນຕອນທ້າຍຂອງ buffer ແລະສືບຕໍ່ເຖິງແລະລວມທັງເສັ້ນປະຈຸບັນ, ດັ່ງນັ້ນ
ວ່າ buffer ທັງຫມົດແມ່ນຊອກຫາ.
7. ກ ('+') ຫຼື ລັກສະນະ ('−') ຕາມດ້ວຍເລກທົດສະນິຍົມ
ທີ່ຢູ່ ເສັ້ນປະຈຸບັນບວກຫຼືລົບຕົວເລກ. ກ ຫຼື ລັກສະນະ
ບໍ່ໄດ້ຕາມດ້ວຍຕົວເລກທົດສະນິຍົມຈະຕ້ອງລະບຸເສັ້ນປະຈຸບັນບວກຫຼືລົບ 1.
ທີ່ຢູ່ສາມາດຖືກປະຕິບັດຕາມໂດຍສູນຫຼືຫຼາຍກວ່າທີ່ຢູ່ offsets, ເປັນທາງເລືອກ - ແຍກອອກ.
ທີ່ຢູ່ offsets ແມ່ນຖືກສ້າງຂຶ້ນດັ່ງຕໍ່ໄປນີ້:
* ກ ຫຼື ຕົວອັກສອນຕາມດ້ວຍຕົວເລກທົດສະນິຍົມຈະຕ້ອງເພີ່ມ ຫຼື
ລົບ, ຕາມລໍາດັບ, ຈໍານວນທີ່ລະບຸຂອງແຖວໄປຫາຫຼືຈາກທີ່ຢູ່. ກ
ເຊັນ> ຫຼື ຕົວອັກສອນທີ່ບໍ່ໄດ້ຕາມດ້ວຍເລກທົດສະນິຍົມຈະຕ້ອງຕື່ມ ຫຼືລົບ 1
ໄປ ຫຼື ຈາກ ທີ່ ຢູ່.
* ຕົວເລກທົດສະນິຍົມຈະຕ້ອງເພີ່ມຈໍານວນແຖວທີ່ລະບຸໄວ້ໃນທີ່ຢູ່.
ມັນຈະບໍ່ເປັນຂໍ້ຜິດພາດສໍາລັບຄ່າທີ່ຢູ່ຂັ້ນກາງທີ່ຈະໜ້ອຍກວ່າສູນ ຫຼືໃຫຍ່ກວ່າ
ກ່ວາແຖວສຸດທ້າຍໃນການແກ້ໄຂ buffer. ມັນຈະເປັນຄວາມຜິດພາດສໍາລັບຄ່າທີ່ຢູ່ສຸດທ້າຍ
ໜ້ອຍກວ່າສູນ ຫຼືໃຫຍ່ກວ່າແຖວສຸດທ້າຍໃນ buffer ແກ້ໄຂ. ມັນຈະເປັນຄວາມຜິດພາດ
ຖ້າການຄົ້ນຫາ BRE ບໍ່ພົບເສັ້ນທີ່ກົງກັນ.
ຄໍາສັ່ງຍອມຮັບສູນ, ຫນຶ່ງ, ຫຼືສອງທີ່ຢູ່. ຖ້າຫຼາຍກວ່າຈໍານວນທີ່ຢູ່ທີ່ຕ້ອງການ
ໄດ້ຖືກສະຫນອງໃຫ້ຄໍາສັ່ງທີ່ຕ້ອງການສູນທີ່ຢູ່, ມັນຈະເປັນຄວາມຜິດພາດ. ຖ້າບໍ່ດັ່ງນັ້ນ,
ຖ້າຫາກວ່າຫຼາຍກ່ວາຈໍານວນທີ່ຕ້ອງການແມ່ນໄດ້ຮັບການສະຫນອງໃຫ້ກັບຄໍາສັ່ງ, ທີ່ຢູ່
ທີ່ລະບຸໄວ້ກ່ອນຈະຖືກປະເມີນແລະຫຼັງຈາກນັ້ນຍົກເລີກຈົນກ່ວາຈໍານວນສູງສຸດທີ່ຖືກຕ້ອງ
ທີ່ຢູ່ຍັງຄົງຢູ່, ສໍາລັບຄໍາສັ່ງທີ່ລະບຸໄວ້.
ທີ່ຢູ່ຈະຕ້ອງແຍກອອກຈາກກັນໂດຍ ກ (',') ຫຼື ລັກສະນະ
(';'). ໃນກໍລະນີຂອງ ກ ຕົວແຍກ, ເສັ້ນປະຈຸບັນ ('.') ຈະຖືກກໍານົດເປັນ
ທີ່ຢູ່ທໍາອິດ, ແລະພຽງແຕ່ຫຼັງຈາກນັ້ນທີ່ຢູ່ທີສອງຈະຖືກຄິດໄລ່. ຄຸນນະສົມບັດນີ້ສາມາດ
ຖືກນໍາໃຊ້ເພື່ອກໍານົດເສັ້ນເລີ່ມຕົ້ນສໍາລັບການຄົ້ນຫາຕໍ່ຫນ້າແລະຖອຍຫລັງ; ເບິ່ງກົດລະບຽບ 5.
ແລະ 6.
ທີ່ຢູ່ສາມາດຖືກລະເວັ້ນຢູ່ທັງສອງຂ້າງຂອງ ຫຼື ຕົວແຍກ, ໃນນັ້ນ
ກໍລະນີທີ່ຜົນໄດ້ຮັບຄູ່ທີ່ຢູ່ຈະເປັນດັ່ງຕໍ່ໄປນີ້:
┌────────────┬─────────────┐
│ລະບຸໄວ້ │ ຜົນໄດ້ຮັບ │
├────────────┼─────────────┤
│ , │ 1 , $│
│, addr │ 1 , addr │
│addr , │ addr , addr │
│ ; │ . ; $│
│ ; addr │ . ; addr │
│ addr ; │ addr ; addr │
└───────────┴─────────────┘
ໃດ ຕົວອັກສອນລວມຢູ່ລະຫວ່າງທີ່ຢູ່, ຕົວແຍກທີ່ຢູ່, ຫຼືການຊົດເຊີຍທີ່ຢູ່
ຈະຖືກລະເລີຍ.
ຄໍາສັ່ງ in ed
ໃນບັນຊີລາຍຊື່ຕໍ່ໄປນີ້ຂອງ ed ຄໍາສັ່ງ, ທີ່ຢູ່ເລີ່ມຕົ້ນແມ່ນສະແດງຢູ່ໃນວົງເລັບ. ໄດ້
ຈໍານວນທີ່ຢູ່ທີ່ສະແດງຢູ່ໃນຄ່າເລີ່ມຕົ້ນຈະເປັນຕົວເລກທີ່ຄາດໄວ້ໂດຍຄໍາສັ່ງ. ໄດ້
ວົງເລັບບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງທີ່ຢູ່; ພວກ ເຂົາ ເຈົ້າ ສະ ແດງ ໃຫ້ ເຫັນ ວ່າ ທີ່ ຢູ່ ທີ່ ໄດ້ ຮັບ ແມ່ນ
Default
ໂດຍທົ່ວໄປແລ້ວມັນບໍ່ຖືກຕ້ອງສໍາລັບຫຼາຍກວ່າຫນຶ່ງຄໍາສັ່ງທີ່ຈະປາກົດຢູ່ໃນແຖວ. ຢ່າງໃດກໍຕາມ, ໃດ
ຄໍາສັ່ງ (ຍົກເວັ້ນ e, E, f, q, Q, r, w, ແລະ !) ສາມາດ suffixed ໂດຍຈົດຫມາຍ l, n, ຫຼື p; ໃນ
ໃນກໍລະນີໃດກໍ່ຕາມ, ຍົກເວັ້ນ l, n, ແລະ p ຄໍາສັ່ງ, ຄໍາສັ່ງຈະຖືກປະຕິບັດແລະຫຼັງຈາກນັ້ນ
ເສັ້ນປະຈຸບັນໃຫມ່ຈະຖືກຂຽນຕາມທີ່ໄດ້ອະທິບາຍໄວ້ຂ້າງລຸ່ມນີ້ l, n, ແລະ p ຄຳ ສັ່ງ.
ໃນເວລາທີ່ຫນຶ່ງ l, n, ຫຼື p ຄໍາຕໍ່ທ້າຍແມ່ນໃຊ້ກັບ l, n, ຫຼື p ຄໍາສັ່ງ, ຄໍາສັ່ງຈະຂຽນເຖິງ
ຜົນຜະລິດມາດຕະຖານທີ່ໄດ້ອະທິບາຍຂ້າງລຸ່ມນີ້, ແຕ່ມັນບໍ່ໄດ້ຖືກລະບຸວ່າຄໍາຕໍ່ທ້າຍຂຽນ
ເສັ້ນປະຈຸບັນອີກເທື່ອຫນຶ່ງໃນຮູບແບບທີ່ຮ້ອງຂໍຫຼືວ່າຄໍາຕໍ່ທ້າຍບໍ່ມີຜົນ. ສໍາລັບ
ຍົກຕົວຢ່າງ, the pl ຄໍາສັ່ງ (ຖານ p ຄໍາສັ່ງທີ່ມີ l suffix) ອາດຈະຂຽນພຽງແຕ່
ເສັ້ນປະຈຸບັນຫຼືຂຽນມັນສອງຄັ້ງ - ຫນຶ່ງຄັ້ງຕາມທີ່ລະບຸໄວ້ສໍາລັບ p ແລະຄັ້ງດຽວຕາມທີ່ລະບຸໄວ້ສໍາລັບ l. ນອກຈາກນີ້,
ໄດ້ g, G, v, ແລະ V ຄໍາສັ່ງຈະເອົາຄໍາສັ່ງເປັນພາລາມິເຕີ.
ແຕ່ລະອົງປະກອບທີ່ຢູ່ສາມາດນໍາໜ້າດ້ວຍສູນ ຫຼືຫຼາຍກວ່ານັ້ນ ຕົວລະຄອນ. ຄໍາສັ່ງ
ຈົດໝາຍສາມາດນຳໜ້າດ້ວຍສູນ ຫຼືຫຼາຍກວ່ານັ້ນ ຕົວລະຄອນ. ຖ້າຕົວໜັງສືຕໍ່ທ້າຍ (l, n, ຫຼື p)
ໄດ້ຖືກມອບໃຫ້, ຄໍາຮ້ອງສະຫມັກຈະຕ້ອງຮັບປະກັນວ່າມັນປະຕິບັດຕາມຄໍາສັ່ງທັນທີ.
ໄດ້ e, E, f, r, ແລະ w ຄໍາສັ່ງຈະຕ້ອງໃຊ້ທາງເລືອກ ເອກະສານ ພາລາມິເຕີ, ແຍກອອກຈາກ
ຈົດຫມາຍຄໍາສັ່ງໂດຍຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ ຕົວລະຄອນ.
ຖ້າມີການປ່ຽນແປງໃນ buffer ນັບຕັ້ງແຕ່ທີ່ຜ່ານມາ w ຄໍາສັ່ງທີ່ຂຽນທັງຫມົດ
ບັຟເຟີ, ed ຈະເຕືອນຜູ້ໃຊ້ຖ້າຫາກວ່າມີຄວາມພະຍາຍາມທີ່ຈະທໍາລາຍ buffer ບັນນາທິການໂດຍຜ່ານການ
e or q ຄໍາສັ່ງ. ໄດ້ ed utility ຈະຂຽນ string:
"?\n"
(ຕິດຕາມດ້ວຍຂໍ້ຄວາມອະທິບາຍຖ້າ ຊ່ວຍເຫຼືອ ຮູບແບບການ ໄດ້ຖືກເປີດໃຊ້ຜ່ານ H ຄໍາສັ່ງ) ກັບ
ຜົນຜະລິດມາດຕະຖານແລະຈະສືບຕໍ່ໃນຮູບແບບຄໍາສັ່ງທີ່ມີຕົວເລກແຖວໃນປັດຈຸບັນບໍ່ມີການປ່ຽນແປງ.
ຖ້າ e or q ຄໍາສັ່ງແມ່ນຊ້ໍາກັນໂດຍບໍ່ມີຄໍາສັ່ງແຊກແຊງ, ມັນຈະມີຜົນບັງຄັບໃຊ້.
ຖ້າຫາກວ່າການຕັດການເຊື່ອມຕໍ່ terminal (ເບິ່ງ Base Definitions volume ຂອງ POSIX.1-2008, ບົດ 11,
ໂດຍທົ່ວໄປ Terminal ການໂຕ້ຕອບ, ໂມເດັມຕັດການເຊື່ອມຕໍ່ແລະປິດສະຖານີອຸປະກອນ), ຖືກກວດພົບ:
* ຖ້າມາພ້ອມກັບສັນຍານ SIGHUP, ໄດ້ ed ຜົນປະໂຫຍດຈະຕ້ອງດໍາເນີນການດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນ
ພາກສ່ວນເຫດການ ASYNCHRONOUS ສໍາລັບສັນຍານ SIGHUP.
* ຖ້າບໍ່ມາພ້ອມກັບສັນຍານ SIGHUP, ໄດ້ ed utility ຈະປະຕິບັດເປັນຖ້າຫາກວ່າເອກະສານສິ້ນສຸດ
ໄດ້ຖືກກວດພົບໃນວັດສະດຸປ້ອນມາດຕະຖານ.
ຖ້າພົບເອກະສານສິ້ນສຸດໃນວັດສະດຸປ້ອນມາດຕະຖານ:
* ຖ້າຫາກວ່າ ed ຜົນປະໂຫຍດແມ່ນຢູ່ໃນຮູບແບບການປ້ອນຂໍ້ມູນ, ed ຈະຢຸດໂຫມດການປ້ອນຂໍ້ມູນ ແລະກັບຄືນໄປຫາ
ຮູບແບບຄໍາສັ່ງ. ມັນບໍ່ໄດ້ຖືກລະບຸວ່າມີເສັ້ນໃດ ໜຶ່ງ ທີ່ໃສ່ບາງສ່ວນ (ນັ້ນແມ່ນ, ການປ້ອນຂໍ້ຄວາມ
ໂດຍບໍ່ມີການຢຸດເຊົາການ ) ຖືກຍົກເລີກຈາກການປ້ອນຂໍ້ຄວາມ.
* ຖ້າຫາກວ່າ ed ຜົນປະໂຫຍດແມ່ນຢູ່ໃນຮູບແບບຄໍາສັ່ງ, ມັນຈະປະຕິບັດຄືກັບວ່າ a q ຄໍາສັ່ງໄດ້ຖືກປ້ອນ.
ຖ້າຕົວຂັ້ນປິດຂອງ RE ຫຼືຂອງ string ທົດແທນ (ຕົວຢ່າງ, '/') ຢູ່ໃນ g, G,
s, v, ຫຼື V ຄໍາສັ່ງຈະເປັນຕົວອັກສອນສຸດທ້າຍກ່ອນ a , ຕົວຂັ້ນນັ້ນສາມາດເປັນ
ຍົກເວັ້ນ, ໃນກໍລະນີນີ້, ແຖວທີ່ຢູ່ຈະຖືກຂຽນ. ຕົວຢ່າງ, ຕໍ່ໄປນີ້
ຄູ່ຂອງຄໍາສັ່ງແມ່ນທຽບເທົ່າ:
s/s1/s2 s/s1/s2/p
g/s1 g/s1/p
?s1 ?s1?
ຖ້າຄໍາສັ່ງທີ່ບໍ່ຖືກຕ້ອງຖືກໃສ່, ed ຈະຂຽນ string:
"?\n"
(ຕິດຕາມດ້ວຍຂໍ້ຄວາມອະທິບາຍຖ້າ ຊ່ວຍເຫຼືອ ຮູບແບບການ ໄດ້ຖືກເປີດໃຊ້ຜ່ານ H ຄໍາສັ່ງ) ກັບ
ຜົນຜະລິດມາດຕະຖານແລະຈະສືບຕໍ່ໃນຮູບແບບຄໍາສັ່ງທີ່ມີຕົວເລກແຖວໃນປັດຈຸບັນບໍ່ມີການປ່ຽນແປງ.
ເອກະສານຊ້ອນທ້າຍ ຄໍາສັ່ງ
Synopsis:
(.)ກ
<ຂໍ້ຄວາມ>
.
ໄດ້ a ຄໍາສັ່ງຈະອ່ານຂໍ້ຄວາມທີ່ໄດ້ຮັບແລະຕໍ່ທ້າຍມັນຫຼັງຈາກແຖວທີ່ໄດ້ຮັບການແກ້ໄຂ; ໄດ້
ໝາຍເລກແຖວປະຈຸບັນຈະກາຍເປັນທີ່ຢູ່ຂອງແຖວທີ່ໃສ່ສຸດທ້າຍ ຫຼື ຖ້າມີ
none, ແຖວທີ່ຢູ່. ທີ່ຢູ່ 0 ຈະຖືກຕ້ອງສໍາລັບຄໍາສັ່ງນີ້; ມັນຈະເຮັດໃຫ້ເກີດການ
ຂໍ້ຄວາມຕໍ່ທ້າຍເພື່ອວາງໄວ້ໃນຕອນຕົ້ນຂອງ buffer.
ການປ່ຽນແປງ ຄໍາສັ່ງ
Synopsis:
(.,.)ຄ
<ຂໍ້ຄວາມ>
.
ໄດ້ c ຄໍາສັ່ງຈະລົບບັນຊີທີ່ຢູ່, ຫຼັງຈາກນັ້ນຍອມຮັບຂໍ້ຄວາມທີ່ເຂົ້າມາແທນທີ່ເຫຼົ່ານີ້
ສາຍ; ເສັ້ນປະຈຸບັນຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງການປ້ອນຂໍ້ມູນແຖວສຸດທ້າຍ; ຫຼື, ຖ້າມີ
ແມ່ນ none, ຢູ່ແຖວຫຼັງຈາກເສັ້ນສຸດທ້າຍຖືກລຶບ; ຖ້າເສັ້ນຖືກລົບໃນເບື້ອງຕົ້ນ
ໃນຕອນທ້າຍຂອງ buffer, ຈໍານວນແຖວປະຈຸບັນຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງໃຫມ່
ເສັ້ນສຸດທ້າຍ; ຖ້າບໍ່ມີສາຍຢູ່ໃນ buffer, ຈໍານວນແຖວປະຈຸບັນຈະຖືກຕັ້ງເປັນສູນ.
ທີ່ຢູ່ 0 ຈະຖືກຕ້ອງສໍາລັບຄໍາສັ່ງນີ້; ມັນຈະຖືກຕີຄວາມວ່າທີ່ຢູ່ 1 ແມ່ນ
ລະບຸ.
ລົບ ຄໍາສັ່ງ
Synopsis:
(.,.) ງ
ໄດ້ d ຄໍາສັ່ງຈະລົບສາຍທີ່ໄດ້ຮັບການແກ້ໄຂຈາກ buffer ໄດ້. ທີ່ຢູ່ຂອງສາຍ
ຫຼັງຈາກແຖວສຸດທ້າຍທີ່ຖືກລົບຈະກາຍເປັນຕົວເລກແຖວໃນປັດຈຸບັນ; ຖ້າເສັ້ນຖືກລົບ
ໃນເບື້ອງຕົ້ນແມ່ນຢູ່ໃນຕອນທ້າຍຂອງ buffer, ຈໍານວນເສັ້ນປະຈຸບັນຈະຖືກຕັ້ງເປັນ
ທີ່ຢູ່ຂອງແຖວສຸດທ້າຍໃໝ່; ຖ້າບໍ່ມີສາຍຢູ່ໃນ buffer, ຈໍານວນແຖວປະຈຸບັນ
ຈະຖືກຕັ້ງເປັນສູນ.
ດັດແກ້ ຄໍາສັ່ງ
Synopsis:
e [ເອກະສານ]
ໄດ້ e ຄໍາສັ່ງຈະລຶບເນື້ອຫາທັງຫມົດຂອງ buffer ແລະຫຼັງຈາກນັ້ນອ່ານໃນໄຟລ໌
ຕັ້ງຊື່ຕາມຊື່ເສັ້ນທາງ ເອກະສານ. ໝາຍເລກແຖວປະຈຸບັນຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງ
ແຖວສຸດທ້າຍຂອງ buffer. ຖ້າບໍ່ມີຊື່ເສັ້ນທາງຖືກໃຫ້, ຊື່ເສັ້ນທາງທີ່ຈື່ຈໍາໃນປັດຈຸບັນ, if
ໃດໆ, ຈະຖືກນໍາໃຊ້ (ເບິ່ງ f ຄໍາສັ່ງ). ຈໍານວນຂອງ bytes ອ່ານຈະໄດ້ຮັບການຂຽນເຖິງ
ຜົນຜະລິດມາດຕະຖານ, ເວັ້ນເສຍແຕ່ວ່າ −ສ ທາງເລືອກໄດ້ລະບຸໄວ້, ໃນຮູບແບບຕໍ່ໄປນີ້:
"%d\n", <ຈໍານວນ of ໄບ ອ່ານ>
ຊື່ ເອກະສານ ຈະຖືກຈົດຈໍາໄວ້ສໍາລັບການນໍາໃຊ້ທີ່ເປັນໄປໄດ້ເປັນຊື່ເສັ້ນທາງເລີ່ມຕົ້ນໃນຕໍ່ມາ e,
E, r, ແລະ w ຄໍາສັ່ງ. ຖ້າ ເອກະສານ ຖືກແທນທີ່ດ້ວຍ '!', ສ່ວນທີ່ເຫຼືອຂອງເສັ້ນຈະຖືກນໍາໄປ
ເປັນເສັ້ນຄໍາສັ່ງ shell ທີ່ມີຜົນຜະລິດທີ່ຈະອ່ານ. ເສັ້ນຄໍາສັ່ງ shell ດັ່ງກ່າວຈະບໍ່ເປັນ
ຈື່ໄດ້ວ່າເປັນປັດຈຸບັນ ເອກະສານ. ເຄື່ອງໝາຍທັງໝົດຈະຕ້ອງຖືກຍົກເລີກເມື່ອສໍາເລັດ ກ
ສົບຜົນສໍາເລັດ e ຄໍາສັ່ງ. ຖ້າ buffer ມີການປ່ຽນແປງຕັ້ງແຕ່ຄັ້ງສຸດທ້າຍ buffer ທັງຫມົດແມ່ນ
ຂຽນ, ຜູ້ໃຊ້ຈະຖືກເຕືອນ, ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ກ່ອນຫນ້ານີ້.
ດັດແກ້ ໂດຍບໍ່ມີການ ການກວດສອບ ຄໍາສັ່ງ
Synopsis:
E [ເອກະສານ]
ໄດ້ E ຄໍາສັ່ງຕ້ອງມີຄຸນສົມບັດແລະຂໍ້ຈໍາກັດທັງຫມົດຂອງ e ຄໍາສັ່ງຍົກເວັ້ນນັ້ນ
ບັນນາທິການຈະບໍ່ກວດເບິ່ງວ່າມີການປ່ຽນແປງໃດໆກັບ buffer ຕັ້ງແຕ່ນັ້ນມາ
ສຸດທ້າຍ w ຄໍາສັ່ງ.
filename ຄໍາສັ່ງ
Synopsis:
f [ເອກະສານ]
If ເອກະສານ ແມ່ນໃຫ້, ໄດ້ f ຄໍາສັ່ງຈະປ່ຽນຊື່ເສັ້ນທາງທີ່ຈື່ຈໍາໃນປັດຈຸບັນເປັນ ເອກະສານ;
ບໍ່ວ່າຊື່ຈະຖືກປ່ຽນຫຼືບໍ່, ມັນຈະຂຽນ (ອາດຈະເປັນໃຫມ່) ໃນປັດຈຸບັນ
ຈື່ຊື່ເສັ້ນທາງໄປຫາຜົນຜະລິດມາດຕະຖານໃນຮູບແບບຕໍ່ໄປນີ້:
"%s\n", <ຊື່ເສັ້ນທາງ>
ໝາຍເລກແຖວປັດຈຸບັນຈະບໍ່ປ່ຽນແປງ.
Global ຄໍາສັ່ງ
Synopsis:
(1,$)g/RE/ຄໍາສັ່ງ ບັນຊີລາຍຊື່
ໃນ g ຄໍາສັ່ງ, ຂັ້ນຕອນທໍາອິດຈະຕ້ອງຫມາຍທຸກເສັ້ນສໍາລັບເສັ້ນທີ່ບໍ່ລວມເອົາ
ການຢຸດເຊົາ ກົງກັບ RE ທີ່ໃຫ້. ຫຼັງຈາກນັ້ນ, ໄປຕາມລໍາດັບຈາກ
ການເລີ່ມຕົ້ນຂອງໄຟລ໌ໄປຫາຈຸດສິ້ນສຸດຂອງໄຟລ໌, ໄດ້ມອບໃຫ້ ຄໍາສັ່ງ ບັນຊີລາຍຊື່ ຈະຖືກປະຕິບັດສໍາລັບການ
ແຕ່ລະເສັ້ນທີ່ຖືກຫມາຍ, ໂດຍມີຕົວເລກແຖວປັດຈຸບັນກໍານົດທີ່ຢູ່ຂອງແຖວນັ້ນ. ສາຍໃດນຶ່ງ
ດັດແກ້ໂດຍ ຄໍາສັ່ງ ບັນຊີລາຍຊື່ ຈະຖືກຍົກເລີກການໝາຍ. ໃນເວລາທີ່ g ຄໍາສັ່ງສໍາເລັດ, ໃນປັດຈຸບັນ
ໝາຍເລກແຖວຈະຕ້ອງມີຄ່າທີ່ກຳນົດໂດຍຄຳສັ່ງສຸດທ້າຍໃນເຄື່ອງໝາຍ ຄໍາສັ່ງ ບັນຊີລາຍຊື່ທີ່ຢູ່ ຖ້າຫາກວ່າ
ບໍ່ມີສາຍທີ່ກົງກັນ, ໝາຍເລກແຖວປະຈຸບັນຈະບໍ່ມີການປ່ຽນແປງ. ດຽວ
ຄໍາສັ່ງຫຼືທໍາອິດຂອງບັນຊີລາຍຊື່ຂອງຄໍາສັ່ງຈະປາກົດຢູ່ໃນເສັ້ນດຽວກັນກັບທົ່ວໂລກ
ຄໍາສັ່ງ. ແຖວທັງໝົດຂອງບັນຊີລາຍຊື່ຫຼາຍແຖວ ຍົກເວັ້ນແຖວສຸດທ້າຍຈະຕ້ອງລົງທ້າຍດ້ວຍ a
ກ່ອນການສິ້ນສຸດລົງ ; ໄດ້ a, i, ແລະ c ຄໍາສັ່ງແລະທີ່ກ່ຽວຂ້ອງ
ການປ້ອນຂໍ້ມູນແມ່ນອະນຸຍາດ. ໄດ້ '.' ການຢຸດເຊົາການປ້ອນຂໍ້ມູນຮູບແບບສາມາດຖືກລະເວັ້ນຖ້າມັນຈະເປັນ
ເສັ້ນສຸດທ້າຍຂອງ ຄໍາສັ່ງ ບັນຊີລາຍຊື່. ຫວ່າງເປົ່າ ຄໍາສັ່ງ ບັນຊີລາຍຊື່ ຈະເທົ່າກັບ p ຄໍາສັ່ງ.
ການ ນຳ ໃຊ້ຂອງ g, G, v, V, ແລະ ! ຄໍາສັ່ງໃນ ຄໍາສັ່ງ ບັນຊີລາຍຊື່ ສ້າງຜົນໄດ້ຮັບທີ່ບໍ່ໄດ້ກໍານົດ.
ລັກສະນະອື່ນນອກຈາກ ຫຼື ສາມາດໃຊ້ແທນ a ກໍານົດຂອບເຂດ
RE. ພາຍໃນ RE, ຕົວຂັ້ນ RE ຕົວຂອງມັນເອງສາມາດຖືກນໍາໃຊ້ເປັນຕົວຫນັງສືຖ້າມັນເປັນ
ນຳໜ້າດ້ວຍ ກ .
Interactive Global ຄໍາສັ່ງ
Synopsis:
(1,$)G/RE/
ໃນ G ຄໍາສັ່ງ, ຂັ້ນຕອນທໍາອິດຈະຕ້ອງຫມາຍທຸກເສັ້ນສໍາລັບເສັ້ນທີ່ບໍ່ລວມເອົາ
ການຢຸດເຊົາ ກົງກັບ RE ທີ່ໃຫ້. ຫຼັງຈາກນັ້ນ, ສໍາລັບທຸກເສັ້ນດັ່ງກ່າວ, ເສັ້ນນັ້ນຈະ
ຈະຖືກຂຽນ, ຕົວເລກແຖວປະຈຸບັນຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງແຖວນັ້ນ, ແລະອັນໃດນຶ່ງ
ຄໍາສັ່ງ (ນອກຈາກຫນຶ່ງຂອງ a, c, i, g, G, v, ແລະ V ຄໍາສັ່ງ) ຈະຖືກອ່ານແລະ
ປະຕິບັດ. ກ ຈະປະຕິບັດເປັນຄໍາສັ່ງ null (ເຮັດໃຫ້ບໍ່ມີການດໍາເນີນການກ່ຽວກັບ
ເສັ້ນປະຈຸບັນ); ເປັນ '&' ຈະເຮັດໃຫ້ເກີດການປະຕິບັດຄືນໃຫມ່ຂອງຄໍາສັ່ງທີ່ບໍ່ແມ່ນ null ຫຼ້າສຸດ
ປະຕິບັດພາຍໃນ invocation ປະຈຸບັນຂອງ G. ໃຫ້ສັງເກດວ່າການປ້ອນຄໍາສັ່ງເປັນສ່ວນຫນຶ່ງຂອງ
ການປະຕິບັດຂອງ G ຄໍາສັ່ງສາມາດແກ້ໄຂແລະຜົນກະທົບຕໍ່ສາຍໃດໆໃນ buffer. ສາຍໃດນຶ່ງ
ດັດແກ້ໂດຍຄໍາສັ່ງຈະບໍ່ໄດ້ຮັບການຫມາຍ. ຄ່າສຸດທ້າຍຂອງຕົວເລກແຖວປັດຈຸບັນ
ຈະເປັນຄ່າທີ່ກໍານົດໄວ້ໂດຍຄໍາສັ່ງສຸດທ້າຍທີ່ຖືກປະຕິບັດຢ່າງສໍາເລັດຜົນ. (ສັງເກດວ່າສຸດທ້າຍ
ຄໍາສັ່ງທີ່ປະຕິບັດຢ່າງສໍາເລັດຜົນຈະຕ້ອງເປັນ G ຄໍາສັ່ງຂອງມັນເອງຖ້າຄໍາສັ່ງລົ້ມເຫລວຫຼື null
ຄໍາສັ່ງແມ່ນໄດ້ລະບຸໄວ້
ມີການປ່ຽນແປງ. ໄດ້ G ຄໍາສັ່ງສາມາດຖືກຢຸດໂດຍສັນຍານ SIGINT. ລັກສະນະອື່ນນອກຈາກ
ຫຼື ສາມາດໃຊ້ແທນ a ເພື່ອກໍານົດຂອບເຂດ RE ແລະ
ການທົດແທນ. ພາຍໃນ RE, ຕົວຂັ້ນ RE ຕົວຂອງມັນເອງສາມາດຖືກນໍາໃຊ້ເປັນຕົວຫນັງສືຖ້າຫາກວ່າ
ມັນຖືກນໍາຫນ້າໂດຍ a .
ຊ່ວຍເຫຼືອ ຄໍາສັ່ງ
Synopsis:
h
ໄດ້ h ຄໍາສັ່ງຈະຕ້ອງຂຽນຂໍ້ຄວາມສັ້ນກັບຜົນຜະລິດມາດຕະຖານທີ່ອະທິບາຍເຫດຜົນສໍາລັບ
ທີ່ສຸດ '?' ແຈ້ງການ. ໝາຍເລກແຖວປັດຈຸບັນຈະບໍ່ປ່ຽນແປງ.
ຮູບແບບການຊ່ວຍເຫຼືອ ຄໍາສັ່ງ
Synopsis:
H
ໄດ້ H ຄໍາສັ່ງຈະເຮັດໃຫ້ເກີດ ed ເພື່ອເຂົ້າໄປໃນຮູບແບບທີ່ຂໍ້ຄວາມຊ່ວຍເຫຼືອ (ເບິ່ງ h ຄໍາສັ່ງ)
ຈະຖືກຂຽນເປັນຜົນຜະລິດມາດຕະຖານສໍາລັບທຸກອັນຕໍ່ມາ '?' ການແຈ້ງເຕືອນ. ໄດ້ H ຄໍາສັ່ງ
ສະລັບກັນຈະເປີດ ແລະປິດໂໝດນີ້; ມັນຖືກປິດໄວ້ໃນເບື້ອງຕົ້ນ. ຖ້າຫາກວ່າຮູບແບບການຊ່ວຍເຫຼືອແມ່ນ
ຖືກເປີດ, ໄດ້ H ຄໍາສັ່ງຍັງອະທິບາຍກ່ອນຫນ້ານີ້ '?' ແຈ້ງການ, ຖ້າມີ
ຫນຶ່ງ. ໝາຍເລກແຖວປັດຈຸບັນຈະບໍ່ປ່ຽນແປງ.
Insert ຄໍາສັ່ງ
Synopsis:
(.)i
<ຂໍ້ຄວາມ>
.
ໄດ້ i ຄໍາສັ່ງຕ້ອງໃສ່ຂໍ້ຄວາມທີ່ໃຫ້ໄວ້ກ່ອນແຖວທີ່ຢູ່; ເສັ້ນປະຈຸບັນແມ່ນ
ຕັ້ງເປັນແຖວທີ່ໃສ່ສຸດທ້າຍ ຫຼື ຖ້າບໍ່ມີ, ໄປຫາແຖວທີ່ລະບຸໄວ້. ຄໍາສັ່ງນີ້
ແຕກຕ່າງຈາກ a ຄໍາສັ່ງພຽງແຕ່ໃນການຈັດວາງຂອງຂໍ້ຄວາມປ້ອນຂໍ້ມູນ. ທີ່ຢູ່ 0 ຈະເປັນ
ຖືກຕ້ອງສໍາລັບຄໍາສັ່ງນີ້; ມັນຈະຖືກຕີຄວາມວ່າທີ່ຢູ່ 1 ຖືກລະບຸໄວ້.
ເຂົ້າຮ່ວມ ຄໍາສັ່ງ
Synopsis:
(.,.+1)j
ໄດ້ j ຄໍາສັ່ງຈະເຂົ້າຮ່ວມສາຍຕິດຕໍ່ກັນໂດຍການຖອນທີ່ເຫມາະສົມ
ຕົວລະຄອນ. ຖ້າໃຫ້ທີ່ຢູ່ອັນດຽວ, ຄຳສັ່ງນີ້ຈະບໍ່ເຮັດຫຍັງເລີຍ. ຖ້າສາຍ
ເຂົ້າຮ່ວມ, ຈໍານວນແຖວປະຈຸບັນຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງແຖວທີ່ເຂົ້າຮ່ວມ; ຖ້າບໍ່ດັ່ງນັ້ນ,
ໝາຍເລກແຖວປະຈຸບັນຈະບໍ່ປ່ຽນແປງ.
ເຄື່ອງຫມາຍ ຄໍາສັ່ງ
Synopsis:
(.)ກx
ໄດ້ k ຄໍາສັ່ງຈະຕ້ອງຫມາຍແຖວທີ່ຢູ່ດ້ວຍຊື່ x, ທີ່ຄໍາຮ້ອງສະຫມັກຈະຕ້ອງ
ໃຫ້ແນ່ໃຈວ່າເປັນຕົວພິມນ້ອຍຈາກຊຸດຕົວອັກສອນແບບເຄື່ອນທີ່. ທີ່ຢູ່ "'x" ຫຼັງຈາກນັ້ນ
ອ້າງເຖິງເສັ້ນນີ້; ໝາຍເລກແຖວປະຈຸບັນຈະບໍ່ປ່ຽນແປງ.
ບັນຊີລາຍຊື່ ຄໍາສັ່ງ
Synopsis:
(.,.) ລ
ໄດ້ l ຄໍາສັ່ງຈະຂຽນເປັນມາດຕະຖານຜົນໄດ້ຮັບຂອງສາຍທີ່ແກ້ໄຂໃນສາຍຕາທີ່ບໍ່ຊັດເຈນ
ແບບຟອມ. ຕົວອັກສອນທີ່ລະບຸໄວ້ໃນປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008, ຕາຕະລາງ 5-1,
Escape ລໍາດັບ ແລະ Associated ການກະທໍາ ('\\', '\a', '\b', '\f', '\r', '\t', '\v') ຈະ
ຖືກຂຽນເປັນລໍາດັບ escape ທີ່ສອດຄ້ອງກັນ; ໄດ້ '\n' ໃນຕາຕະລາງນັ້ນແມ່ນໃຊ້ບໍ່ໄດ້.
ຕົວອັກສອນທີ່ບໍ່ສາມາດພິມໄດ້ທີ່ບໍ່ໄດ້ຢູ່ໃນຕາຕະລາງຈະຕ້ອງຖືກຂຽນເປັນຕົວເລກແປດຕົວເລກສາມໂຕ
(ກັບກ່ອນຫນ້ານີ້ character) ສໍາລັບແຕ່ລະ byte ໃນລັກສະນະ (ສໍາຄັນທີ່ສຸດ
byte ກ່ອນ).
ເສັ້ນຍາວຈະຖືກພັບ, ໂດຍຈຸດຂອງການພັບຊີ້ໃຫ້ເຫັນໂດຍ ນຳໜ້າດ້ວຍ ກ
; ຄວາມຍາວຂອງການພັບແມ່ນບໍ່ໄດ້ລະບຸ, ແຕ່ຄວນຈະເຫມາະສົມ
ສໍາລັບອຸປະກອນຜົນຜະລິດ. ສ່ວນທ້າຍຂອງແຕ່ລະແຖວຈະຖືກໝາຍດ້ວຍ a '$', ແລະ '$' ລັກສະນະ
ພາຍໃນຂໍ້ຄວາມຈະຖືກຂຽນດ້ວຍຕົວຫຍໍ້ກ່ອນ . ອັນ l ຄໍາສັ່ງສາມາດເປັນ
ຕື່ມໃສ່ກັບຄໍາສັ່ງອື່ນນອກຈາກ e, E, f, q, Q, r, w, ຫຼື !. ເສັ້ນປະຈຸບັນ
ຕົວເລກຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງແຖວສຸດທ້າຍທີ່ຂຽນ.
ຍ້າຍ ຄໍາສັ່ງ
Synopsis:
(.,.) ມທີ່ຢູ່
ໄດ້ m ຄໍາສັ່ງຈະປັບຕໍາແຫນ່ງແຖວທີ່ໄດ້ຮັບການແກ້ໄຂຫຼັງຈາກເສັ້ນທີ່ແກ້ໄຂໂດຍ ທີ່ຢູ່.
ທີ່ຢູ່ 0 ຈະຕ້ອງຖືກຕ້ອງສໍາລັບ ທີ່ຢູ່ ແລະເຮັດໃຫ້ສາຍທີ່ແກ້ໄຂຖືກຍ້າຍໄປທີ່
ການເລີ່ມຕົ້ນຂອງ buffer ໄດ້. ມັນຈະເປັນຄວາມຜິດພາດຖ້າຫາກວ່າທີ່ຢູ່ ທີ່ຢູ່ ຕົກຢູ່ໃນຂອບເຂດຂອງ
ຍ້າຍສາຍ. ໝາຍເລກແຖວປັດຈຸບັນຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງແຖວສຸດທ້າຍທີ່ຍ້າຍໄປ.
ຈໍານວນ ຄໍາສັ່ງ
Synopsis:
(.,.) ນ
ໄດ້ n ຄໍາສັ່ງຈະຂຽນເປັນມາດຕະຖານຜົນຜະລິດແຖວທີ່ໄດ້ຮັບການແກ້ໄຂ, ກ່ອນຫນ້າແຕ່ລະແຖວໂດຍ
ເລກແຖວ ແລະ ກ ; ໝາຍເລກແຖວປະຈຸບັນຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງ
ແຖວສຸດທ້າຍຂຽນ. ໄດ້ n ຄໍາສັ່ງສາມາດຖືກຕື່ມໃສ່ກັບຄໍາສັ່ງໃດໆນອກເຫນືອຈາກ e, E, f, q, Q,
r, w, ຫຼື !.
ພິມ ຄໍາສັ່ງ
Synopsis:
(.,.)ປ
ໄດ້ p ຄໍາສັ່ງຈະຂຽນເປັນມາດຕະຖານຜົນໄດ້ຮັບຂອງສາຍທີ່ແກ້ໄຂ; ເລກແຖວປະຈຸບັນ
ຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງແຖວສຸດທ້າຍທີ່ຂຽນ. ໄດ້ p ຄໍາສັ່ງສາມາດຖືກຕື່ມໃສ່ກັບໃດໆ
ຄໍາສັ່ງອື່ນນອກຈາກ e, E, f, q, Q, r, w, ຫຼື !.
ການກະຕຸ້ນເຕືອນ ຄໍາສັ່ງ
Synopsis:
P
ໄດ້ P ຄໍາສັ່ງຈະເຮັດໃຫ້ເກີດ ed ເພື່ອກະຕຸ້ນເຕືອນດ້ວຍ ('*') (ຫຼື string, ຖ້າ -ປ is
ລະບຸ) ສໍາລັບຄໍາສັ່ງຕໍ່ໄປທັງຫມົດ. ໄດ້ P ຄໍາສັ່ງທາງເລືອກຈະປ່ຽນຮູບແບບນີ້
on ແລະ off; ມັນ ຈະ ເປັນ ໃນ ເບື້ອງ ຕົ້ນ ຖ້າ ຫາກ ວ່າ -ປ ທາງເລືອກແມ່ນລະບຸໄວ້; ຖ້າບໍ່ດັ່ງນັ້ນ, ປິດ. ໄດ້
ໝາຍເລກແຖວປັດຈຸບັນຈະບໍ່ປ່ຽນແປງ.
ເຊົາ ຄໍາສັ່ງ
Synopsis:
q
ໄດ້ q ຄໍາສັ່ງຈະເຮັດໃຫ້ເກີດ ed ອອກໄປ. ຖ້າຫາກວ່າ buffer ມີການປ່ຽນແປງຕັ້ງແຕ່ຄັ້ງສຸດທ້າຍ
buffer ທັງຫມົດໄດ້ຖືກລາຍລັກອັກສອນ, ຜູ້ໃຊ້ຈະໄດ້ຮັບການເຕືອນ, ດັ່ງທີ່ໄດ້ອະທິບາຍໃນເມື່ອກ່ອນ.
ເຊົາ ໂດຍບໍ່ມີການ ການກວດສອບ ຄໍາສັ່ງ
Synopsis:
Q
ໄດ້ Q ຄໍາສັ່ງຈະເຮັດໃຫ້ເກີດ ed ອອກໄປໂດຍບໍ່ໄດ້ກວດເບິ່ງວ່າມີການປ່ຽນແປງຫຼືບໍ່
buffer ນັບຕັ້ງແຕ່ທີ່ຜ່ານມາ w ຄໍາສັ່ງ.
ອ່ານ ຄໍາສັ່ງ
Synopsis:
($)r [ເອກະສານ]
ໄດ້ r ຄໍາສັ່ງຈະອ່ານຢູ່ໃນໄຟລ໌ທີ່ມີຊື່ໂດຍຊື່ເສັ້ນທາງ ເອກະສານ ແລະຕື່ມມັນຫຼັງຈາກ
ທີ່ຢູ່ ແຖວ. ຖ້າບໍ່ມີ ເອກະສານ argument ແມ່ນໃຫ້, ຊື່ເສັ້ນທາງທີ່ຈື່ຈໍາໃນປັດຈຸບັນ, ຖ້າມີ,
ຈະຖືກນໍາໃຊ້ (ເບິ່ງ e ແລະ f ຄໍາສັ່ງ). ຊື່ເສັ້ນທາງທີ່ຈື່ໄວ້ໃນປັດຈຸບັນຈະບໍ່ເປັນ
ມີການປ່ຽນແປງເວັ້ນເສຍແຕ່ບໍ່ມີຊື່ເສັ້ນທາງທີ່ຈື່ໄວ້. ທີ່ຢູ່ 0 ຈະຕ້ອງຖືກຕ້ອງສໍາລັບ r ແລະຈະ
ເຮັດໃຫ້ໄຟລ໌ຖືກອ່ານໃນຕອນຕົ້ນຂອງ buffer. ຖ້າການອ່ານປະສົບຜົນສໍາເລັດ, ແລະ
−ສ ບໍ່ໄດ້ລະບຸໄວ້, ຈໍານວນຂອງການອ່ານໄບຕ໌ຈະໄດ້ຮັບການຂຽນເປັນຜົນຜະລິດມາດຕະຖານໃນ
ຮູບແບບດັ່ງຕໍ່ໄປນີ້:
"%d\n", <ຈໍານວນ of ໄບ ອ່ານ>
ໝາຍເລກແຖວປະຈຸບັນຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງແຖວສຸດທ້າຍທີ່ອ່ານຢູ່ໃນ. ຖ້າ ເອກະສານ is
ທົດແທນໂດຍ '!', ສ່ວນທີ່ເຫຼືອຂອງເສັ້ນຈະຖືກນໍາໄປເປັນເສັ້ນຄໍາສັ່ງ shell ທີ່ມີ
ຜົນຜະລິດແມ່ນຈະອ່ານ. ເສັ້ນຄໍາສັ່ງ shell ດັ່ງກ່າວຈະບໍ່ຖືກຈື່ໄວ້ເປັນປັດຈຸບັນ
ຊື່ເສັ້ນທາງ.
ທົດແທນ ຄໍາສັ່ງ
Synopsis:
(.,.)s/RE/ການທົດແທນ/ທົງ
ໄດ້ s ຄໍາສັ່ງຈະຄົ້ນຫາແຕ່ລະແຖວທີ່ຢູ່ສໍາລັບການປະກົດຕົວຂອງ RE ທີ່ກໍານົດໄວ້ແລະ
ປ່ຽນສະຕຣິງທີ່ກົງກັນທຳອິດ ຫຼືທັງໝົດ (ບໍ່ທັບຊ້ອນກັນ) ດ້ວຍ ການທົດແທນ1 ເບິ່ງ
ລາຍລະອຽດດັ່ງຕໍ່ໄປນີ້ຂອງ g ຕໍ່ທ້າຍ. ມັນເປັນຂໍ້ຜິດພາດຖ້າການປ່ຽນແທນລົ້ມເຫລວ
ທຸກໆແຖວທີ່ຢູ່. ລັກສະນະອື່ນນອກຈາກ ຫຼື ສາມາດໃຊ້ແທນ
ກ ເພື່ອກໍານົດຂອບເຂດ RE ແລະການທົດແທນ. ພາຍໃນ RE, ຕົວຂັ້ນ RE ຕົວຂອງມັນເອງ
ສາມາດໃຊ້ເປັນຕົວໜັງສືໄດ້ ຖ້າມັນຖືກນຳໜ້າດ້ວຍ a . ເສັ້ນປະຈຸບັນ
ຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງແຖວສຸດທ້າຍທີ່ມີການທົດແທນທີ່ເກີດຂຶ້ນ.
ອັນ ('&') ປະກົດຢູ່ໃນ ການທົດແທນ ຈະຖືກແທນທີ່ດ້ວຍການຈັບຄູ່ສະຕຣິງ
RE ໃນເສັ້ນປະຈຸບັນ. ຄວາມຫມາຍພິເສດຂອງ '&' ໃນສະພາບການນີ້ສາມາດໄດ້ຮັບການສະກັດກັ້ນ
ໂດຍນໍາຫນ້າມັນໂດຍ . ໃນຖານະເປັນລັກສະນະທົ່ວໄປຫຼາຍ, ລັກສະນະ '\n', ບ່ອນທີ່ n
ເປັນຕົວເລກ, ຈະຖືກແທນທີ່ດ້ວຍຂໍ້ຄວາມທີ່ກົງກັນກັບ back-reference ທີ່ສອດຄ້ອງກັນ
ການສະແດງອອກ. ຖ້າການສະແດງອອກຂອງ back-reference ທີ່ສອດຄ້ອງກັນບໍ່ກົງກັນ, ຫຼັງຈາກນັ້ນ
ລັກສະນະ '\n' ຈະຖືກແທນທີ່ດ້ວຍສາຍທີ່ຫວ່າງເປົ່າ. ໃນເວລາທີ່ມີລັກສະນະ '%' ແມ່ນພຽງແຕ່
ລັກສະນະໃນ ການທົດແທນ, ການ ການທົດແທນ ໃຊ້ໃນຄໍາສັ່ງທົດແທນຫຼ້າສຸດ
ຈະຖືກນໍາໃຊ້ເປັນ ການທົດແທນ ໃນຄໍາສັ່ງທົດແທນໃນປະຈຸບັນ; ຖ້າບໍ່ມີ
ຄໍາສັ່ງທົດແທນກ່ອນຫນ້ານີ້, ການນໍາໃຊ້ '%' ໃນລັກສະນະນີ້ຈະເປັນຄວາມຜິດພາດ. ໄດ້ '%'
ຈະສູນເສຍຄວາມໝາຍພິເສດຂອງມັນເມື່ອມັນຢູ່ໃນສາຍແທນທີ່ຫຼາຍກວ່າໜຶ່ງອັນ
ລັກສະນະ ຫຼືແມ່ນນຳໜ້າດ້ວຍ ກ . ສໍາລັບແຕ່ລະຄົນ ພົບໃນການສະແກນ
ການທົດແທນ ຕັ້ງແຕ່ຕົ້ນຈົນຈົບ, ລັກສະນະຕໍ່ໄປນີ້ຈະສູນເສຍຄວາມຫມາຍພິເສດຂອງມັນ
(ຖ້າມີ). ມັນບໍ່ໄດ້ຖືກລະບຸວ່າຄວາມ ໝາຍ ພິເສດໃດຖືກມອບໃຫ້ກັບຕົວລະຄອນອື່ນນອກ ເໜືອ ຈາກ
, '&', '%', ຫຼືຕົວເລກ.
ເສັ້ນສາມາດແບ່ງໄດ້ໂດຍການປ່ຽນແທນ a ເຂົ້າໄປໃນມັນ. ຄໍາຮ້ອງສະຫມັກຈະຕ້ອງຮັບປະກັນມັນ
ຫນີ ໃນ ການທົດແທນ ໂດຍນໍາຫນ້າມັນໂດຍ . ດັ່ງກ່າວ
ການທົດແທນບໍ່ສາມາດເຮັດໄດ້ເປັນສ່ວນຫນຶ່ງຂອງ a g or v ຄໍາສັ່ງ ບັນຊີລາຍຊື່. ໝາຍເລກແຖວປັດຈຸບັນ
ຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງແຖວສຸດທ້າຍທີ່ມີການປ່ຽນແທນ. ຖ້າບໍ່ມີ
ການທົດແທນແມ່ນປະຕິບັດ, ຈໍານວນແຖວໃນປະຈຸບັນຈະບໍ່ປ່ຽນແປງ. ຖ້າເສັ້ນຖືກແຍກ,
ການທົດແທນຈະຖືກພິຈາລະນາວ່າໄດ້ຖືກປະຕິບັດໃນແຕ່ລະເສັ້ນໃຫມ່ສໍາລັບ
ຈຸດປະສົງຂອງການກໍານົດຕົວເລກເສັ້ນໃນປະຈຸບັນໃຫມ່. ການທົດແທນຈະຖືກພິຈາລະນາ
ໄດ້ຖືກປະຕິບັດເຖິງແມ່ນວ່າສະຕຣິງທົດແທນແມ່ນຄືກັນກັບສະຕຣິງທີ່ມັນ
ແທນ.
ຄໍາຮ້ອງສະຫມັກຈະຕ້ອງຮັບປະກັນວ່າມູນຄ່າຂອງ ທົງ ແມ່ນສູນ ຫຼືຫຼາຍກວ່ານັ້ນ:
ນັບ ແທນທີ່ ນັບth ການປະກົດຕົວພຽງແຕ່ຂອງ RE ທີ່ພົບເຫັນໃນແຕ່ລະແຖວທີ່ຢູ່.
g ທົດແທນທົ່ວໂລກສໍາລັບທຸກໆກໍລະນີທີ່ບໍ່ຊ້ໍາກັນຂອງ RE ແທນທີ່ຈະພຽງແຕ່
ອັນທໍາອິດ. ຖ້າທັງສອງ g ແລະ ນັບ ໄດ້ຖືກລະບຸໄວ້, ຜົນໄດ້ຮັບບໍ່ໄດ້ຖືກລະບຸ.
l ຂຽນໃສ່ຜົນຜະລິດມາດຕະຖານແຖວສຸດທ້າຍທີ່ມີການປ່ຽນແທນ. ສາຍ
ຈະຖືກຂຽນໃນຮູບແບບທີ່ລະບຸໄວ້ສໍາລັບ l ຄໍາສັ່ງ.
n ຂຽນໃສ່ຜົນຜະລິດມາດຕະຖານແຖວສຸດທ້າຍທີ່ມີການປ່ຽນແທນ. ສາຍ
ຈະຖືກຂຽນໃນຮູບແບບທີ່ລະບຸໄວ້ສໍາລັບ n ຄໍາສັ່ງ.
p ຂຽນໃສ່ຜົນຜະລິດມາດຕະຖານແຖວສຸດທ້າຍທີ່ມີການປ່ຽນແທນ. ສາຍ
ຈະຖືກຂຽນໃນຮູບແບບທີ່ລະບຸໄວ້ສໍາລັບ p ຄໍາສັ່ງ.
ສໍາເນົາ ຄໍາສັ່ງ
Synopsis:
(.,.)tທີ່ຢູ່
ໄດ້ t ຄໍາສັ່ງຈະທຽບເທົ່າກັບ m ຄໍາສັ່ງ, ຍົກເວັ້ນວ່າສໍາເນົາຂອງທີ່ຢູ່
ສາຍຈະຖືກວາງໄວ້ຫຼັງຈາກທີ່ຢູ່ ທີ່ຢູ່ (ຊຶ່ງສາມາດເປັນ 0); ເລກແຖວປະຈຸບັນ
ຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງແຖວສຸດທ້າຍທີ່ເພີ່ມ.
ປະຕິເສດ ຄໍາສັ່ງ
Synopsis:
u
ໄດ້ u ຄໍາສັ່ງຈະ nullify ຜົນກະທົບຂອງຄໍາສັ່ງທີ່ຜ່ານມາຫຼາຍທີ່ສຸດທີ່ດັດແປງຫຍັງ
ໃນ buffer ໄດ້, ຄື ຫລ້າ ສຸດ a, c, d, g, i, j, m, r, s, t, u, v, G, ຫຼື V ຄໍາສັ່ງ.
ການປ່ຽນແປງທັງຫມົດທີ່ເຮັດໃຫ້ກັບ buffer ໂດຍ a g, G, v, ຫຼື V ຄໍາສັ່ງທົ່ວໂລກຈະຖືກຍົກເລີກເປັນ
ການປ່ຽນແປງດຽວ; ຖ້າບໍ່ມີການປ່ຽນແປງໂດຍຄໍາສັ່ງທົ່ວໂລກ (ເຊັ່ນ: ກັບ g/RE/p), the u
ຄໍາສັ່ງຈະບໍ່ມີຜົນກະທົບ. ໝາຍເລກແຖວປະຈຸບັນຈະຖືກຕັ້ງເປັນຄ່າທີ່ມັນມີ
ທັນທີກ່ອນທີ່ຄໍາສັ່ງຈະຖືກຍົກເລີກເລີ່ມຕົ້ນ.
Global ບໍ່ກົງກັນ ຄໍາສັ່ງ
Synopsis:
(1,$)v/RE/ຄໍາສັ່ງ ບັນຊີລາຍຊື່
ຄໍາສັ່ງນີ້ຈະທຽບເທົ່າກັບຄໍາສັ່ງທົ່ວໂລກ g ຍົກເວັ້ນແຕ່ວ່າສາຍທີ່ມີ
ຫມາຍໃນລະຫວ່າງຂັ້ນຕອນທໍາອິດຈະເປັນແຖວທີ່ບໍ່ໄດ້ລວມເຖິງການສິ້ນສຸດ
ບໍ່ກົງກັບ RE.
Interactive Global ບໍ່ກົງກັນ ຄໍາສັ່ງ
Synopsis:
(1,$)V/RE/
ຄໍາສັ່ງນີ້ຈະທຽບເທົ່າກັບຄໍາສັ່ງທົ່ວໂລກແບບໂຕ້ຕອບ G ຍົກເວັ້ນວ່າສາຍ
ທີ່ຖືກໝາຍໄວ້ໃນລະຫວ່າງຂັ້ນຕອນທຳອິດຈະຕ້ອງເປັນແຖວທີ່ບໍ່ລວມເອົາ
ການຢຸດເຊົາ ບໍ່ກົງກັບ RE.
ຂຽນ ຄໍາສັ່ງ
Synopsis:
(1,$)ວ [ເອກະສານ]
ໄດ້ w ຄໍາສັ່ງຈະຂຽນບັນຊີທີ່ຢູ່ໃນໄຟລ໌ທີ່ມີຊື່ໂດຍ pathname ເອກະສານ.
ຄໍາສັ່ງຈະສ້າງໄຟລ໌, ຖ້າມັນບໍ່ມີ, ຫຼືຈະປ່ຽນເນື້ອໃນຂອງ
ໄຟລ໌ທີ່ມີຢູ່ແລ້ວ. ຊື່ເສັ້ນທາງທີ່ຈື່ໄວ້ໃນປັດຈຸບັນຈະບໍ່ຖືກປ່ຽນແປງເວັ້ນເສຍແຕ່ວ່າມີ
ບໍ່ມີຊື່ເສັ້ນທາງທີ່ຈື່ໄວ້. ຖ້າບໍ່ມີຊື່ເສັ້ນທາງຖືກໃຫ້, ຊື່ເສັ້ນທາງທີ່ຈື່ຈໍາໃນປັດຈຸບັນ, if
ໃດໆ, ຈະຖືກນໍາໃຊ້ (ເບິ່ງ e ແລະ f ຄໍາສັ່ງ); ໝາຍເລກແຖວປະຈຸບັນຈະບໍ່ປ່ຽນແປງ.
ຖ້າຄໍາສັ່ງປະສົບຜົນສໍາເລັດ, ຈໍານວນ bytes ທີ່ຂຽນຈະຖືກຂຽນເປັນມາດຕະຖານ
ຜົນຜະລິດ, ເວັ້ນເສຍແຕ່ວ່າ −ສ ທາງເລືອກໄດ້ລະບຸໄວ້, ໃນຮູບແບບຕໍ່ໄປນີ້:
"%d\n", <ຈໍານວນ of ໄບ ລາຍລັກອັກສອນ>
If ເອກະສານ ເລີ່ມຕົ້ນດ້ວຍ '!', ສ່ວນທີ່ເຫຼືອຂອງເສັ້ນຈະຖືກນໍາໄປເປັນເສັ້ນຄໍາສັ່ງ shell
ການປ້ອນຂໍ້ມູນມາດຕະຖານຂອງພວກມັນຈະເປັນແຖວທີ່ແກ້ໄຂ. ເສັ້ນຄໍາສັ່ງ shell ດັ່ງກ່າວຈະບໍ່ເປັນ
ຈື່ໄວ້ເປັນຊື່ເສັ້ນທາງປະຈຸບັນ. ການນໍາໃຊ້ຄໍາສັ່ງການຂຽນນີ້ກັບ '!' ຈະບໍ່ເປັນ
ຖືວ່າເປັນ ``ສຸດທ້າຍ w ຄໍາສັ່ງທີ່ຂຽນທັງຫມົດ buffer '', ດັ່ງທີ່ອະທິບາຍໃນເມື່ອກ່ອນ;
ດັ່ງນັ້ນ, ອັນດຽວນີ້ຈະບໍ່ປ້ອງກັນການເຕືອນໄພຕໍ່ກັບຜູ້ໃຊ້ຖ້າຫາກວ່າຄວາມພະຍາຍາມແມ່ນເຮັດ
ທໍາລາຍ buffer ບັນນາທິການຜ່ານ e or q ຄຳ ສັ່ງ.
ອອນໄລນ໌ ຈໍານວນ ຄໍາສັ່ງ
Synopsis:
($)=
ໝາຍເລກແຖວຂອງແຖວທີ່ຢູ່ນັ້ນຈະຖືກຂຽນໃສ່ເປັນມາດຕະຖານຜົນໄດ້ຮັບຕໍ່ໄປນີ້
ຮູບແບບ:
"%d\n", <ອອນໄລນ໌ ຈໍານວນ>
ໝາຍເລກແຖວປັດຈຸບັນຈະບໍ່ປ່ຽນແປງໂດຍຄຳສັ່ງນີ້.
Shell Escape ຄໍາສັ່ງ
Synopsis:
!ຄໍາສັ່ງ
ສ່ວນທີ່ເຫຼືອຂອງສາຍຫຼັງຈາກ '!' ຈະຖືກສົ່ງໄປຫານາຍພາສາຄໍາສັ່ງທີ່ຈະເປັນ
ແປເປັນເສັ້ນຄໍາສັ່ງຂອງແກະ. ພາຍໃນຂໍ້ຄວາມຂອງເສັ້ນຄໍາສັ່ງ shell ນັ້ນ, ໄດ້
ລັກສະນະທີ່ບໍ່ໄດ້ຫນີ '%' ຈະຖືກປ່ຽນແທນດ້ວຍຊື່ເສັ້ນທາງທີ່ຈື່ໄວ້; ຖ້າກ '!' ປາກົດຂຶ້ນ
ເປັນຕົວອັກສອນທໍາອິດຂອງຄໍາສັ່ງ, ມັນຈະຖືກປ່ຽນແທນດ້ວຍຂໍ້ຄວາມຂອງກ່ອນຫນ້ານີ້
ຄໍາສັ່ງ shell ປະຕິບັດໂດຍຜ່ານ '!'. ດັ່ງນັ້ນ, "!!" ຈະເຮັດເລື້ມຄືນທີ່ຜ່ານມາ!ຄໍາສັ່ງ. ຖ້າມີ
ການທົດແທນຂອງ '%' or '!' ຖືກປະຕິບັດ, ເສັ້ນດັດແກ້ຈະໄດ້ຮັບການລາຍລັກອັກສອນ
ຜົນຜະລິດມາດຕະຖານກ່ອນ ຄໍາສັ່ງ ຖືກປະຕິບັດ. ໄດ້ ! ຄໍາສັ່ງຈະຂຽນວ່າ:
"!\n"
ເພື່ອຜົນຜະລິດມາດຕະຖານເມື່ອສໍາເລັດ, ເວັ້ນເສຍແຕ່ວ່າ −ສ ທາງເລືອກແມ່ນລະບຸໄວ້. ເສັ້ນປະຈຸບັນ
ຕົວເລກຈະບໍ່ປ່ຽນແປງ.
null ຄໍາສັ່ງ
Synopsis:
(.+1)
ທີ່ຢູ່ອັນດຽວຢູ່ໃນແຖວຈະເຮັດໃຫ້ແຖວທີ່ຢູ່ຖືກຂຽນ. ກ ຄົນດຽວ
ຈະເທົ່າກັບ "+1p". ໝາຍເລກແຖວປະຈຸບັນຈະຖືກຕັ້ງເປັນທີ່ຢູ່ຂອງ
ລາຍລັກອັກສອນ.
ອອກ STATUS
ຄ່າທາງອອກຕໍ່ໄປນີ້ຈະຖືກສົ່ງຄືນ:
0 ສໍາເລັດສົບຜົນສໍາເລັດໂດຍບໍ່ມີໄຟລ໌ຫຼືຄວາມຜິດພາດຄໍາສັ່ງ.
>0 ເກີດຄວາມຜິດພາດຂຶ້ນ.
ຂໍ້ສັງເກດ OF ຄວາມຜິດພາດ
ເມື່ອພົບຂໍ້ຜິດພາດໃນສະຄຣິບປ້ອນເຂົ້າ, ຫຼືເມື່ອພົບຂໍ້ຜິດພາດນັ້ນແມ່ນ
ຜົນສະທ້ອນຂອງຂໍ້ມູນ (ບໍ່) ທີ່ມີຢູ່ໃນໄຟລ໌ຫຼືເນື່ອງຈາກສະພາບການພາຍນອກເຊັ່ນ:
ອ່ານ ຫຼືຂຽນຜິດພາດ:
* ຖ້າຫາກວ່າການປ້ອນຂໍ້ມູນມາດຕະຖານເປັນໄຟລ໌ອຸປະກອນຢູ່ປາຍຍອດ, ການປ້ອນຂໍ້ມູນທັງຫມົດຈະຖືກ flushed, ແລະໃຫມ່
ຄໍາສັ່ງອ່ານ.
* ຖ້າຫາກວ່າການປ້ອນຂໍ້ມູນມາດຕະຖານເປັນໄຟລ໌ປົກກະຕິ, ed ຈະສິ້ນສຸດດ້ວຍການອອກທີ່ບໍ່ແມ່ນສູນ
ສະຖານະພາບ.
ໄດ້ ດັ່ງຕໍ່ໄປນີ້ ພາກສ່ວນ ມີ ຂໍ້ມູນ.
ຄໍາຮ້ອງສະຫມັກ ການນໍາໃຊ້
ເນື່ອງຈາກວ່າລັກສະນະ terse ທີ່ສຸດຂອງຂໍ້ຄວາມຄວາມຜິດພາດໃນຕອນຕົ້ນ, script ລະມັດລະວັງ
ນັກຂຽນເລີ່ມຕົ້ນ ed input ຄໍາສັ່ງທີ່ມີ an H ຄໍາສັ່ງ, ດັ່ງນັ້ນຖ້າຫາກວ່າຄວາມຜິດພາດໃດໆເກີດຂຶ້ນຢູ່ທີ່
ຢ່າງຫນ້ອຍບາງຂໍ້ຄຶດກ່ຽວກັບສາເຫດແມ່ນໄດ້ຮັບການເປີດເຜີຍ.
ໃນສະບັບກ່ອນຫນ້າຂອງມາດຕະຖານນີ້, ເປັນ obsolescent - ທາງເລືອກໄດ້ຖືກອະທິບາຍ. ນີ້ບໍ່ແມ່ນ
ລະບຸໄວ້ດົນກວ່າ. ຄໍາຮ້ອງສະຫມັກຄວນໃຊ້ −ສ ທາງເລືອກ. ການນໍາໃຊ້ - ເປັນຫນຶ່ງ ເອກະສານ ດໍາເນີນການໃນປັດຈຸບັນ
ສ້າງຜົນໄດ້ຮັບທີ່ບໍ່ໄດ້ລະບຸ. ນີ້ອະນຸຍາດໃຫ້ປະຕິບັດເພື່ອສືບຕໍ່ສະຫນັບສະຫນູນການ
ພຶດຕິກໍາທີ່ຕ້ອງການໃນອະດີດ.
ຕົວຢ່າງ
ບໍ່ມີ.
ສະຖານທີ່
ຄໍາອະທິບາຍເບື້ອງຕົ້ນຂອງຜົນປະໂຫຍດນີ້ໄດ້ຖືກດັດແປງຈາກ SVID. ມັນປະກອບດ້ວຍບາງ
ບໍ່ພົບຄຸນສົມບັດໃນເວີຊັນ 7 ຫຼືລະບົບ BSD ທີ່ມາຈາກ. ບາງຄວາມແຕກຕ່າງລະຫວ່າງ
POSIX ແລະ BSD ed ຜົນປະໂຫຍດປະກອບມີ, ແຕ່ບໍ່ຈໍາເປັນຕ້ອງຈໍາກັດພຽງແຕ່:
* BSD - ທາງເລືອກບໍ່ໄດ້ສະກັດກັ້ນ '!' ກະຕຸ້ນຫລັງຈາກ a ! ຄໍາສັ່ງ.
* BSD ບໍ່ສະຫນັບສະຫນູນຄວາມຫມາຍພິເສດຂອງ '%' ແລະ '!' ຕົວອັກສອນພາຍໃນ a !
ຄໍາສັ່ງ.
* BSD ບໍ່ໄດ້ສະຫນັບສະຫນູນ ທີ່ຢູ່ ';' ແລະ ','.
* BSD ອະນຸຍາດໃຫ້ຄູ່ຄໍາສັ່ງ / suffix pp, ll, ແລະອື່ນໆ, ທີ່ບໍ່ໄດ້ລະບຸໄວ້ໃນນີ້
ປະລິມານຂອງ POSIX.1-2008.
* BSD ບໍ່ໄດ້ສະຫນັບສະຫນູນ '!' ສ່ວນລັກສະນະຂອງ e, r, ຫຼື w ຄຳ ສັ່ງ.
* ລົ້ມເຫລວ g ຄໍາສັ່ງໃນ BSD ກໍານົດຈໍານວນແຖວໄປຫາແຖວສຸດທ້າຍທີ່ຄົ້ນຫາຖ້າມີ
ບໍ່ມີການແຂ່ງຂັນ.
* BSD ບໍ່ເປັນຄ່າເລີ່ມຕົ້ນ ຄໍາສັ່ງ ບັນຊີລາຍຊື່ ການ p ຄໍາສັ່ງ.
* BSD ບໍ່ໄດ້ສະຫນັບສະຫນູນ G, h, H, n, ຫຼື V ຄຳ ສັ່ງ.
* ໃນ BSD, ຖ້າບໍ່ມີຂໍ້ຄວາມໃສ່, ຄໍາສັ່ງ insert ປ່ຽນເສັ້ນປະຈຸບັນເປັນ
ເສັ້ນອ້າງອີງ −1; ນັ້ນແມ່ນ, ເສັ້ນກ່ອນເສັ້ນທີ່ກໍານົດໄວ້.
* ໃນ BSD, ໄດ້ ເຂົ້າຮ່ວມ ຄໍາສັ່ງທີ່ມີພຽງແຕ່ທີ່ຢູ່ດຽວປ່ຽນເສັ້ນປະຈຸບັນໄປຫານັ້ນ
ທີ່ຢູ່.
* BSD ບໍ່ໄດ້ສະຫນັບສະຫນູນ P ຄໍາສັ່ງ; ຍິ່ງໄປກວ່ານັ້ນ, ໃນ BSD ມັນແມ່ນຄໍາສັບຄ້າຍຄືກັນກັບ p
ຄໍາສັ່ງ.
* BSD ບໍ່ໄດ້ສະຫນັບສະຫນູນ ຍົກເລີກ ຂອງຄໍາສັ່ງ j, m, r, s, ຫຼື t.
* ສະບັບ 7 ed ຄໍາສັ່ງ W, ແລະ BSD ed ຄໍາສັ່ງ W, wq, ແລະ z ບໍ່ມີຢູ່ໃນ
ປະລິມານນີ້ຂອງ POSIX.1-2008.
ໄດ້ −ສ ທາງເລືອກໄດ້ຖືກເພີ່ມເພື່ອອະນຸຍາດໃຫ້ການທໍາງານຂອງການໂຍກຍ້າຍອອກໄດ້ - ທາງເລືອກໃນລັກສະນະ
ເຂົ້າກັນໄດ້ກັບ Utility Syntax Guidelines.
ໃນບົດສະເໜີເບື້ອງຕົ້ນມີຂີດຈຳກັດ, {ED_FILE_MAX}, ທີ່ອະທິບາຍປະຫວັດສາດ
ຂໍ້ຈໍາກັດຂອງບາງ ed ຜົນປະໂຫຍດໃນການຈັດການໄຟລ໌ຂະຫນາດໃຫຍ່ຂອງພວກເຂົາ; ບາງສ່ວນຂອງເຫຼົ່ານີ້ມີ
ມີບັນຫາກັບໄຟລ໌ທີ່ໃຫຍ່ກວ່າ 100000 bytes. ມັນແມ່ນຂໍ້ ຈຳ ກັດນີ້ທີ່ກະຕຸ້ນໃຫ້ຫຼາຍ
ຄວາມປາຖະຫນາທີ່ຈະປະກອບມີ a ແບ່ງປັນ ຄໍາສັ່ງຢູ່ໃນປະລິມານຂອງ POSIX.1-2008 ນີ້. ນັບຕັ້ງແຕ່ຂໍ້ຈໍາກັດນີ້ແມ່ນ
ເອົາອອກ, ປະລິມານຂອງ POSIX.1-2008 ນີ້ຮຽກຮ້ອງໃຫ້ການປະຕິບັດເອກະສານຂະຫນາດໄຟລ໌
ຂໍ້ຈໍາກັດກໍານົດໂດຍ ed ໃນເອກະສານສອດຄ່ອງ. ຂີດຈຳກັດ {ED_LINE_MAX} ແມ່ນຄືກັນ
ເອົາອອກ; ດັ່ງນັ້ນ, ຂີດຈຳກັດທົ່ວໂລກ {LINE_MAX} ແມ່ນໃຊ້ສຳລັບສາຍຂາເຂົ້າ ແລະ ຂາອອກ.
ລັກສະນະທີ່ l ຄໍາສັ່ງຂຽນຕົວອັກສອນທີ່ບໍ່ສາມາດພິມໄດ້ມີການປ່ຽນແປງເພື່ອຫຼີກເວັ້ນການ
ວິທີການ backspace-overstrike ປະຫວັດສາດ. ຢູ່ໃນສະຖານີສະແດງວິດີໂອ, overstrike ແມ່ນ
ບໍ່ມີຄວາມຊັດເຈນເພາະວ່າຈຸດເຊື່ອມຕໍ່ສ່ວນໃຫຍ່ພຽງແຕ່ປ່ຽນແທນຕົວອັກສອນ overstruck, ເຮັດໃຫ້ l ຮູບແບບ
ບໍ່ເປັນປະໂຫຍດສໍາລັບຈຸດປະສົງທີ່ຕັ້ງໃຈຂອງຕົນໃນການເຂົ້າໃຈເນື້ອໃນຂອງ unambiguously
ສາຍ. ປະຫວັດສາດ -escapes ຍັງມີຄວາມບໍ່ຊັດເຈນ. (ສາຍ "a\0011" ສາມາດເຮັດໄດ້
ເປັນຕົວແທນຂອງແຖວທີ່ມີຫົກຕົວອັກສອນ ຫຼືແຖວທີ່ມີສາມຕົວອັກສອນ
'ກ', a byte ທີ່ມີຄ່າຖານສອງຂອງ 1, ແລະ a 1.) ໃນຮູບແບບທີ່ຕ້ອງການໃນທີ່ນີ້, a
ປາກົດຢູ່ໃນເສັ້ນແມ່ນຂຽນເປັນ "\\" ດັ່ງນັ້ນຜົນຜະລິດແມ່ນບໍ່ແນ່ນອນແທ້ໆ. ໄດ້
ວິທີການຂອງການຫມາຍປາຍຂອງເສັ້ນໄດ້ຮັບຮອງເອົາຈາກ ex ບັນນາທິການແລະຕ້ອງການສໍາລັບການໃດໆ
ແຖວທີ່ສິ້ນສຸດໃນ ລັກສະນະ; ໄດ້ '$' ຖືກຈັດໃສ່ໃນທຸກສາຍເພື່ອໃຫ້ເປັນຈິງ '$' at
ທ້າຍແຖວບໍ່ສາມາດຕີຄວາມໝາຍຜິດໄດ້.
ຮຸ່ນກ່ອນຫນ້າຂອງມາດຕະຖານນີ້ອະນຸຍາດໃຫ້ປະຕິບັດກັບ bytes ອື່ນທີ່ບໍ່ແມ່ນແປດ
bits, ແຕ່ນີ້ໄດ້ຖືກດັດແກ້ໃນສະບັບນີ້.
ຄໍາອະທິບາຍວິທີການຂຽນ NUL ຖືກໂຍກຍ້າຍ. ຕົວອັກສອນ NUL ບໍ່ສາມາດຢູ່ໃນຂໍ້ຄວາມໄດ້
ໄຟລ໌, ແລະປະລິມານຂອງ POSIX.1-2008 ນີ້ບໍ່ຄວນກໍານົດພຶດຕິກໍາໃນກໍລະນີຂອງ
ບໍ່ໄດ້ກຳນົດ, ການປ້ອນຂໍ້ມູນຜິດພາດ.
ບໍ່ເຫມືອນກັບບາງເຄື່ອງມືການແກ້ໄຂອື່ນໆ, ຊື່ໄຟລ໌ທີ່ຍອມຮັບໂດຍ E, e, R, ແລະ r
ຄໍາສັ່ງບໍ່ແມ່ນຮູບແບບ.
ຂໍ້ສະເຫນີຕົ້ນສະບັບໄດ້ກ່າວວ່າ -ປ ທາງເລືອກເຮັດວຽກພຽງແຕ່ໃນເວລາທີ່ການປ້ອນຂໍ້ມູນມາດຕະຖານທີ່ກ່ຽວຂ້ອງ
ກັບອຸປະກອນ terminal. ນີ້ໄດ້ຮັບການປ່ຽນແປງໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ,
ດັ່ງນັ້ນຈຶ່ງອະນຸຍາດໃຫ້ແອັບພລິເຄຊັນສາມາດແຊກແຊງຕົວເອງລະຫວ່າງຜູ້ໃຊ້ແລະຜູ້ໃຊ້ ed utility
ຮູບແບບຂອງຄໍາສັ່ງທົດແທນທີ່ນໍາໃຊ້ n ຄໍາຕໍ່ທ້າຍໄດ້ຖືກຈໍາກັດໃນບາງປະຫວັດສາດ
ເອກະສານ (ບ່ອນນີ້ຖືກອະທິບາຍບໍ່ຖືກຕ້ອງວ່າເປັນ ``ການອ້າງອີງຄືນຫຼັງ'). ຂີດຈຳກັດນີ້
ໄດ້ຖືກລະເວັ້ນເນື່ອງຈາກບໍ່ມີເຫດຜົນວ່າເປັນຫຍັງບັນນາທິການປະມວນຜົນຂອງ {LINE_MAX}
ຄວາມຍາວຄວນມີຂໍ້ຈໍາກັດນີ້. ຄໍາສັ່ງ s/x/X/2047 ຄວນຈະສາມາດທົດແທນໄດ້
ການເກີດຂຶ້ນຄັ້ງທີ 2047 ຂອງ 'x' ຢູ່ໃນເສັ້ນ.
ການນໍາໃຊ້ຂອງຄໍາສັ່ງການພິມກັບການພິມຕໍ່ທ້າຍ (ເຊັ່ນ: pn, lp, ແລະອື່ນໆ) ໄດ້ເຮັດ
ບໍ່ໄດ້ລະບຸເພາະວ່າລະບົບ BSD ອະນຸຍາດໃຫ້ນີ້, ໃນຂະນະທີ່ລະບົບ V ບໍ່.
ບາງລະບົບທີ່ອີງໃສ່ BSD ຈະອອກທັນທີເມື່ອໄດ້ຮັບໄຟລ໌ສິ້ນສຸດຖ້າສາຍທັງຫມົດເຂົ້າມາ
ໄຟລ໌ໄດ້ຖືກລົບ. ເນື່ອງຈາກວ່າປະລິມານຂອງ POSIX.1-2008 ນີ້ຫມາຍເຖິງ q ຄໍາສັ່ງໃນ
ຕົວຢ່າງນີ້, ພຶດຕິກໍາດັ່ງກ່າວບໍ່ໄດ້ຖືກອະນຸຍາດໃຫ້.
ການປະຕິບັດປະຫວັດສາດບາງຢ່າງສົ່ງຄືນສະຖານະອອກຈາກສູນເຖິງແມ່ນວ່າມີຄວາມຜິດພາດຄໍາສັ່ງ
ເກີດຂຶ້ນ; ອັນນີ້ບໍ່ໄດ້ຖືກອະນຸຍາດໂດຍປະລິມານຂອງ POSIX.1-2008 ນີ້.
ບາງການປະຕິບັດປະຫວັດສາດມີຂໍ້ບົກພ່ອງທີ່ອະນຸຍາດໃຫ້ມີອັນດຽວ ຈະເປັນ
ເຂົ້າໃນຮູບແບບການປ້ອນຂໍ້ມູນເປັນ . ອັນນີ້ບໍ່ໄດ້ຖືກອະນຸຍາດໂດຍ ed
ເນື່ອງຈາກວ່າບໍ່ມີຄໍາອະທິບາຍກ່ຽວກັບການຫລົບຫນີໃດໆຂອງຕົວອັກສອນໃນຮູບແບບການປ້ອນຂໍ້ມູນ;
ຕົວອັກສອນຖືກໃສ່ເຂົ້າໃນ buffer ຢ່າງຖືກຕ້ອງຕາມທີ່ພິມ. ວິທີການປົກກະຕິຂອງ
ເຂົ້າມາດຽວ ໄດ້ມີການນຳໜ້າມັນດ້ວຍຕົວລະຄອນອື່ນ ແລະ ຈາກນັ້ນໃຊ້ຕົວໜັງສື
ຄໍາສັ່ງທົດແທນເພື່ອລຶບຕົວອັກສອນນັ້ນ.
ມັນເປັນການຍາກພາຍໃຕ້ບາງໂຫມດຂອງບາງສະບັບຂອງ terminal ລະບົບປະຕິບັດການປະຫວັດສາດ
ໄດເວີເພື່ອຈໍາແນກລະຫວ່າງເງື່ອນໄຂສິ້ນສຸດຂອງໄຟລ໌ແລະການຕັດການເຊື່ອມຕໍ່ຢູ່ປາຍຍອດ.
POSIX.1-2008 ບໍ່ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດເພື່ອຈໍາແນກລະຫວ່າງສອງສະຖານະການ,
ທີ່ອະນຸຍາດໃຫ້ປະຕິບັດປະຫວັດສາດຂອງ ed ຜົນປະໂຫຍດໃນເວທີປະຫວັດສາດເພື່ອ
ສອດຄ່ອງ. ການປະຕິບັດໄດ້ຖືກຊຸກຍູ້ໃຫ້ຈໍາແນກລະຫວ່າງສອງ, ຖ້າເປັນໄປໄດ້, ແລະ
ດໍາເນີນການທີ່ເຫມາະສົມກ່ຽວກັບການຕັດການເຊື່ອມຕໍ່ຢູ່ປາຍຍອດ.
ໃນປະຫວັດສາດ, ed ຍອມຮັບທີ່ຢູ່ສູນສໍາລັບ a ແລະ r ຄໍາສັ່ງເພື່ອແຊກຂໍ້ຄວາມ
ໃນຕອນເລີ່ມຕົ້ນຂອງການແກ້ໄຂ buffer. ເມື່ອ buffer ຫວ່າງເປົ່າຄໍາສັ່ງ .= ກັບຄືນສູນ.
POSIX.1-2008 ຕ້ອງການໃຫ້ສອດຄ່ອງກັບການປະຕິບັດປະຫວັດສາດ.
ສໍາລັບຄວາມສອດຄ່ອງຂອງ a ແລະ r ຄໍາສັ່ງແລະການທໍາງານຂອງຜູ້ໃຊ້ທີ່ດີກວ່າ, ໄດ້ i ແລະ c
ຄໍາສັ່ງຍັງຕ້ອງຍອມຮັບທີ່ຢູ່ຂອງ 0, ໃນກໍລະນີນີ້ 0i ຖືກປະຕິບັດເປັນ 1i ແລະເຊັ່ນດຽວກັນ
ສໍາລັບ c ຄໍາສັ່ງ.
ທັງໝົດຕໍ່ໄປນີ້ແມ່ນທີ່ຢູ່ທີ່ຖືກຕ້ອງ:
+++ ສາມເສັ້ນຫຼັງຈາກເສັ້ນປະຈຸບັນ.
/ຮູບແບບ/− ຫນຶ່ງແຖວກ່ອນທີ່ຈະປະກົດຕົວຕໍ່ໄປຂອງຮູບແບບ.
−2 ສອງແຖວກ່ອນເສັ້ນປະຈຸບັນ.
3 −−−− 2 ແຖວທີໜຶ່ງ (ໝາຍເຫດທີ່ຢູ່ລົບຂັ້ນກາງ).
1 2 3 ແຖວຫົກ.
ຈໍານວນຂອງທີ່ຢູ່ສາມາດສະຫນອງໃຫ້ກັບຄໍາສັ່ງເອົາທີ່ຢູ່; ຍົກຕົວຢ່າງ,
"1,2,3,4,5p" ພິມແຖວທີ 4 ແລະ 5, ເພາະວ່າສອງອັນແມ່ນຈຳນວນທີ່ຢູ່ທີ່ຖືກຕ້ອງທີ່ສຸດ
ຍອມຮັບໂດຍ ພິມ ຄໍາສັ່ງ. ນີ້, ໃນການປະສົມປະສານກັບ ຕົວຂັ້ນ,
ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສ້າງຄໍາສັ່ງໂດຍອີງໃສ່ຮູບແບບຄໍາສັ່ງໃນໄຟລ໌. ສໍາລັບຕົວຢ່າງ, ໄດ້
ຄໍາສັ່ງ "3;/foo/;+2p" ຈະສະແດງແຖວທໍາອິດຫຼັງຈາກແຖວ 3 ທີ່ມີຮູບແບບ
ຟູ, ບວກກັບສອງແຖວຕໍ່ໄປ. ໃຫ້ສັງເກດວ່າທີ່ຢູ່ "3;" ຍັງຕ້ອງໄດ້ຮັບການປະເມີນກ່ອນ
ຈະຖືກຍົກເລີກ, ເພາະວ່າແຫຼ່ງທີ່ມາຂອງການຄົ້ນຫາ "/foo/" ຄໍາສັ່ງແມ່ນຂຶ້ນກັບນີ້.
ໃນປະຫວັດສາດ, ed ລະບົບຕ່ອງໂສ້ທີ່ຢູ່ທີ່ບໍ່ອະນຸຍາດ, ດັ່ງທີ່ໄດ້ກ່າວມາຂ້າງເທິງ, ປະກອບດ້ວຍພຽງແຕ່
ຫຼື ຕົວແຍກ; ຍົກຕົວຢ່າງ, ",,," or ";;;" ຖືວ່າເປັນຄວາມຜິດພາດ.
ສໍາລັບຄວາມສອດຄ່ອງຂອງຂໍ້ກໍານົດທີ່ຢູ່, ຂໍ້ຈໍາກັດນີ້ຖືກໂຍກຍ້າຍ. ຕາຕະລາງຕໍ່ໄປນີ້
ລາຍຊື່ບາງແບບຟອມທີ່ຢູ່ໃນປັດຈຸບັນທີ່ເປັນໄປໄດ້:
┌─────────┬───────┬─────────────────────── ──────────────┐
│ທີ່ຢູ່ │ Addr1 │ Addr2 │ ສະຖານະພາບ │ ຄໍາຄິດຄໍາເຫັນ │
├─────────┼────────┼──────────────────────── ──────────────┤
│7, │ 7 │ 7 │ ປະຫວັດສາດ │ │
│7,5, │ 5 │ 5 │ ປະຫວັດສາດ │ │
│7,5,9 │ 5 │ 9 │ ປະຫວັດສາດ │ │
│7,9 │ 7 │ 9 │ ປະຫວັດສາດ │ │
│7,+ │ 7 │ 8 │ ປະຫວັດສາດ │ │
│, │ 1 │ $ │ ປະຫວັດສາດ │ │
│,7 │ 1 │ 7 │ ສ່ວນຂະຫຍາຍ │ │
│ , , │ $ │ $ │ ສ່ວນຂະຫຍາຍ │ │
│ , ; │ $ │ $ │ ສ່ວນຂະຫຍາຍ │ │
│7; │ 7 │ 7 │ ປະຫວັດສາດ │ │
│7;5; │ 5 │ 5 │ ປະຫວັດສາດ │ │
│7;5;9 │ 5 │ 9 │ ປະຫວັດສາດ │ │
│7;5,9 │ 5 │ 9 │ ປະຫວັດສາດ │ │
│7;$;4 │ $ │ 4 │ ປະຫວັດສາດ │ ຖືກຕ້ອງ, ແຕ່ຜິດພາດ. │
│7;9 │ 7 │ 9 │ ປະຫວັດສາດ │ │
│7;+ │ 7 │ 8 │ ປະຫວັດສາດ │ │
│ ; │ . │ $ │ ປະຫວັດສາດ │ │
│;7 │ . │ 7 │ ສ່ວນຂະຫຍາຍ │ │
│ ; │ $ │ $ │ ສ່ວນຂະຫຍາຍ │ │
│ ;, │ $ │ $ │ ສ່ວນຂະຫຍາຍ │ │
└─────────┴───────┴─────────────────────── ──────────────┘
ໃນປະຫວັດສາດ, ed ຍອມຮັບ '^' ລັກສະນະເປັນທີ່ຢູ່, ໃນກໍລະນີນີ້ມັນແມ່ນຄືກັນ
ກັບ ລັກສະນະ. POSIX.1-2008 ບໍ່ໄດ້ຮຽກຮ້ອງ ຫຼືຫ້າມພຶດຕິກຳນີ້.
ອະນາຄົດ DIRECTIONS
ບໍ່ມີ.
ໃຊ້ edposix ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net