ພາສາອັງກິດພາສາຝຣັ່ງແອສປາໂຍນ

ແລ່ນເຊີບເວີ | Ubuntu > | Fedora > |


OnWorks favicon

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

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

ນີ້ແມ່ນຄໍາສັ່ງ 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


ຄຳສັ່ງການແກ້ໄຂຕ່າງໆ ແລະຄຸນສົມບັດການກະຕຸ້ນເຕືອນ (ເບິ່ງ -ປ) ຂຽນໃສ່ຜົນຜະລິດມາດຕະຖານ, ເປັນ
ອະທິບາຍໄວ້ໃນສ່ວນຂະຫຍາຍຄຳອະທິບາຍ.

STDERR


ຄວາມຜິດພາດມາດຕະຖານຈະຖືກນໍາໃຊ້ສໍາລັບຂໍ້ຄວາມວິນິດໄສເທົ່ານັ້ນ.

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 ";;;" ຖືວ່າເປັນຄວາມຜິດພາດ.
ສໍາລັບຄວາມສອດຄ່ອງຂອງຂໍ້ກໍານົດທີ່ຢູ່, ຂໍ້ຈໍາກັດນີ້ຖືກໂຍກຍ້າຍ. ຕາຕະລາງຕໍ່ໄປນີ້
ລາຍຊື່ບາງແບບຟອມທີ່ຢູ່ໃນປັດຈຸບັນທີ່ເປັນໄປໄດ້:

┌─────────┬───────┬─────────────────────── ──────────────┐
ທີ່ຢູ່Addr1Addr2ສະຖານະພາບຄໍາຄິດຄໍາເຫັນ
├─────────┼────────┼──────────────────────── ──────────────┤
│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


Ad


Ad