ນີ້ແມ່ນຄໍາສັ່ງ samplan9 ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
sam, B, E, sam.save, samterm, samsave - ບັນນາທິການຫນ້າຈໍທີ່ມີການສະແດງອອກປົກກະຕິໂຄງສ້າງ
ສະຫຼຸບສັງລວມ
sam [ ທາງເລືອກ ... ] [ ໄຟ ]
sam -r ເຄື່ອງ
sam.save
B ເອກະສານ[:ອອນໄລນ໌]...
E ເອກະສານ
ລາຍລະອຽດ
Sam ເປັນຕົວແກ້ໄຂຫຼາຍໄຟລ໌. ມັນດັດແປງສໍາເນົາທ້ອງຖິ່ນຂອງໄຟລ໌ພາຍນອກ. ສໍາເນົາແມ່ນ
ທີ່ນີ້ເອີ້ນວ່າ a ເອກະສານ. ໄຟລ໌ໄດ້ຖືກລະບຸໄວ້ໃນເມນູທີ່ມີຜ່ານປຸ່ມຫນູ 3 ຫຼື
ໄດ້ n ຄໍາສັ່ງ. ແຕ່ລະໄຟລ໌ມີຊື່ທີ່ກ່ຽວຂ້ອງ, ປົກກະຕິແລ້ວແມ່ນຊື່ຂອງໄຟລ໌ພາຍນອກ
ຈາກທີ່ມັນຖືກອ່ານ, ແລະ "ດັດແກ້" ບິດທີ່ຊີ້ບອກວ່າໄຟລ໌ບັນນາທິການ
ຕົກລົງເຫັນດີກັບໄຟລ໌ພາຍນອກ. ໄຟລ໌ພາຍນອກບໍ່ໄດ້ຖືກອ່ານເຂົ້າໄປໃນໄຟລ໌ບັນນາທິການຈົນກ່ວາ
ມັນທໍາອິດກາຍເປັນໄຟລ໌ປະຈຸບັນ - ທີ່ຄໍາສັ່ງການແກ້ໄຂນໍາໃຊ້ - ຢູ່ໃນເມນູຂອງມັນ
ພິມເຂົ້າ. ທາງເລືອກແມ່ນ
-a Autoindent. ໃນຮູບແບບນີ້, ໃນເວລາທີ່ຕົວອັກສອນແຖວໃຫມ່ໄດ້ຖືກພິມຢູ່ໃນສະຖານທີ່
ອິນເຕີເຟດ, samterm ສຳເນົາພື້ນທີ່ສີຂາວນຳໜ້າໃນແຖວປັດຈຸບັນໄປຫາແຖວໃໝ່.
-d ຢ່າ 'ດາວໂຫຼດ' ສ່ວນຢູ່ປາຍຍອດຂອງ sam. ການແກ້ໄຂຈະຖືກເຮັດດ້ວຍຄໍາສັ່ງ
ພາສາເທົ່ານັ້ນ, ຄືກັບໃນ ed(1).
-r ເຄື່ອງ
ດໍາເນີນການພາກສ່ວນໂຮດຫ່າງໄກສອກຫຼີກໃນເຄື່ອງທີ່ກໍານົດ, ສ່ວນ terminal ຢູ່ໃນທ້ອງຖິ່ນ.
-s ເສັ້ນທາງ
ເລີ່ມຕົ້ນພາກສ່ວນໂຮດຈາກໄຟລ໌ທີ່ລະບຸໄວ້ໃນໂຮດຫ່າງໄກສອກຫຼີກ. ມີຄວາມໝາຍເທົ່ານັ້ນ
ກັບ -r ທາງເລືອກ.
-t ເສັ້ນທາງ
ເລີ່ມຕົ້ນພາກສ່ວນ terminal ຈາກໄຟລ໌ທີ່ກໍານົດໄວ້. ເປັນປະໂຫຍດສໍາລັບການດີບັກ.
ເປັນປົກກະຕິ expressions
ການສະແດງອອກປົກກະຕິແມ່ນຄືກັນກັບໃນ regexp(7) ມີການເພີ່ມເຕີມຂອງ \n ເພື່ອເປັນຕົວແທນຂອງສາຍໃຫມ່. ກ
ການສະແດງອອກປົກກະຕິອາດຈະບໍ່ມີຕົວອັກສອນເສັ້ນໃໝ່. ຫວ່າງເປົ່າປົກກະຕິ
expression ຫຍໍ້ມາຈາກການສະແດງອອກສຸດທ້າຍທີ່ພົບ. ການສະແດງອອກປົກກະຕິໃນ
sam ກົງກັບສະຕຣິງຍ່ອຍທີ່ຍາວທີ່ສຸດ ຊ້າຍສຸດທີ່ກົງກັນຢ່າງເປັນທາງການໂດຍສະແດງອອກ. ກຳລັງຊອກຫາ
ໃນທິດທາງປີ້ນກັບກັນແມ່ນເທົ່າກັບການຊອກຫາກັບຄືນໄປບ່ອນກັບ catenation
ການປະຕິບັດທີ່ປີ້ນກັບກັນໃນການສະແດງຜົນ.
ທີ່ຢູ່
ທີ່ຢູ່ກໍານົດສາຍຍ່ອຍໃນໄຟລ໌. ໃນຕໍ່ໄປນີ້, `ລັກສະນະ n' ຫມາຍຄວາມວ່າ
null string ຫຼັງຈາກ n-th ຕົວອັກສອນໃນໄຟລ໌, ມີ 1 ຕົວອັກສອນທໍາອິດໃນໄຟລ໌.
`ສາຍ n' ຫມາຍຄວາມວ່າ n-th match, ເລີ່ມຕົ້ນໃນຕອນຕົ້ນຂອງໄຟລ໌, ຂອງປົກກະຕິ
expression ໄຟລ໌ທັງໝົດມີສະຕຣິງຍ່ອຍປະຈຸບັນຢູ່ສະເໝີ, ເອີ້ນວ່າ dot, ນັ້ນແມ່ນຄ່າເລີ່ມຕົ້ນ
ທີ່ຢູ່.
ງ່າຍດາຍ ທີ່ຢູ່
#n ສະຕຣິງຫວ່າງເປົ່າຫຼັງຈາກຕົວອັກສອນ n; #0 ແມ່ນຈຸດເລີ່ມຕົ້ນຂອງໄຟລ໌.
n ອອນໄລນ໌ n; 0 ແມ່ນຈຸດເລີ່ມຕົ້ນຂອງໄຟລ໌.
/regexp/
?regexp?
ຂໍ້ຄວາມຍ່ອຍທີ່ກົງກັບການສະແດງຜົນປົກກະຕິ, ພົບເຫັນໂດຍການເບິ່ງໄປທາງທ້າຍ
(/) ຫຼືການເລີ່ມຕົ້ນ (?) ຂອງໄຟລ໌, ແລະຖ້າຈໍາເປັນ, ສືບຕໍ່ການຄົ້ນຫາຈາກ
ປາຍອື່ນໆໄປຫາຈຸດເລີ່ມຕົ້ນຂອງການຄົ້ນຫາ. ແຖວຍ່ອຍທີ່ຈັບຄູ່ກັນນັ້ນອາດຈະຕິດກັນ
ຈຸດເລີ່ມຕົ້ນ. ໃນເວລາທີ່ໃສ່ຮູບແບບທີ່ມີເຄື່ອງຫມາຍຄໍາຖາມຕົວອັກສອນສໍາລັບການ
ການຄົ້ນຫາແບບຖອຍຫຼັງ, ເຄື່ອງໝາຍຄໍາຖາມຄວນຈະຖືກລະບຸວ່າເປັນສະມາຊິກຂອງຫ້ອງຮຽນ.
0 ສະຕຣິງກ່ອນແຖວເຕັມທຳອິດ. ນີ້ບໍ່ແມ່ນຄວາມຈໍາເປັນຂອງ string null;
ເບິ່ງ + ແລະ - ຂ້າງລຸ່ມນີ້.
$ ສະຕຣິງ null ໃນຕອນທ້າຍຂອງໄຟລ໌.
. ດອດ.
' ເຄື່ອງຫມາຍໃນໄຟລ໌ (ເບິ່ງ k ຄໍາສັ່ງຂ້າງລຸ່ມນີ້).
"regexp"
ກ່ອນໜ້າທີ່ຢູ່ງ່າຍໆ (ຄ່າເລີ່ມຕົ້ນ .), ຫມາຍເຖິງທີ່ຢູ່ທີ່ຖືກປະເມີນຢູ່ໃນ
ໄຟລ໌ທີ່ເປັນເອກະລັກທີ່ມີເສັ້ນເມນູກົງກັບການສະແດງຜົນປົກກະຕິ.
ສົມທົບ ທີ່ຢູ່
ໃນຕໍ່ໄປນີ້, a1 ແລະ a2 ແມ່ນທີ່ຢູ່.
a1+a2 ທີ່ຢູ່ a2 ການປະເມີນຜົນເລີ່ມຕົ້ນໃນຕອນທ້າຍຂອງ a1.
a1-a2 ທີ່ຢູ່ a2 ປະເມີນເບິ່ງໃນທິດທາງປີ້ນກັບກັນເລີ່ມຕົ້ນໃນຕອນເລີ່ມຕົ້ນ
of a1.
a1,a2 ຂໍ້ຄວາມຍ່ອຍຈາກຈຸດເລີ່ມຕົ້ນຂອງ a1 ໃນຕອນທ້າຍຂອງ a2ທີ່ຢູ່ ຖ້າຫາກວ່າ a1 ຫາຍໄປ, 0 is
ທົດແທນ. ຖ້າ a2 ຫາຍໄປ, $ ຖືກປ່ຽນແທນ.
a1;a2 ຄື a1,a2, ແຕ່ວ່າມີ a2 ການປະເມີນຜົນໃນຕອນທ້າຍຂອງ, ແລະຈຸດທີ່ກໍານົດໄວ້, a1.
ຜູ້ປະກອບການ + ແລະ - ມີຄວາມສຳຄັນສູງ, ໃນຂະນະທີ່ , ແລະ ; ມີຄວາມສຳຄັນໜ້ອຍ.
ໃນທັງສອງ + ແລະ - ແບບຟອມ, ຖ້າ a2 ແມ່ນທີ່ຢູ່ແຖວ ຫຼືຕົວອັກສອນທີ່ມີຕົວເລກທີ່ຂາດຫາຍໄປ, the
ຕົວເລກເລີ່ມຕົ້ນເປັນ 1. ຖ້າ a1 ຂາດ, ຖືກທົດແທນ. ຖ້າທັງສອງ a1 ແລະ a2 ມີຢູ່
ແລະແຕກຕ່າງກັນ, + ອາດຈະຖືກລົບລ້າງ. a2 ອາດຈະເປັນການສະແດງອອກເປັນປົກກະຕິ; ຖ້າມັນຖືກຈໍາກັດ
ໂດຍຜົນກະທົບຂອງ + or - ແມ່ນປີ້ນກັບກັນ.
ມັນເປັນຄວາມຜິດພາດສໍາລັບທີ່ຢູ່ປະສົມເພື່ອເປັນຕົວແທນຂອງສະຕຣິງຍ່ອຍທີ່ຜິດຮູບແບບ. ບາງຢ່າງທີ່ເປັນປະໂຫຍດ
ສຳນວນ: a1+- (a1-+) ເລືອກເສັ້ນທີ່ມີຈຸດສຸດທ້າຍ (ເລີ່ມຕົ້ນ) ຂອງ a1. 0/regexp/
ຊອກຫາການຈັບຄູ່ທໍາອິດຂອງການສະແດງອອກໃນໄຟລ໌. (ແບບຟອມ 0;// ຕັ້ງຈຸດ
ໂດຍບໍ່ຈຳເປັນ.) ./regexp/// ຊອກຫາການປະກົດຕົວທີສອງຕໍ່ໄປນີ້ຂອງການສະແດງອອກ, ແລະ
.,/regexp/ ຂະຫຍາຍຈຸດ.
ຄໍາສັ່ງ
ໃນຕໍ່ໄປນີ້, ຂໍ້ຄວາມທີ່ຖືກໝາຍດ້ວຍເຄື່ອງໝາຍຊ້ອນແມ່ນສະແດງເຖິງຂໍ້ຄວາມທີ່ຂັ້ນດ້ວຍເຄື່ອງພິມໃດໆກໍໄດ້
ຕົວອັກສອນຍົກເວັ້ນຕົວເລກ. ຈໍານວນຂອງຕົວຂັ້ນຕໍ່ໄປອາດຈະຖືກລົບລ້າງ, ດ້ວຍ
elision ຫຼາຍອັນຫຼັງຈາກນັ້ນເປັນຕົວແທນຂອງສະຕຣິງ null, ແຕ່ຕົວຂັ້ນທໍາອິດຈະຕ້ອງຢູ່ສະເໝີ
ປະຈຸບັນ. ໃນຂໍ້ຄວາມທີ່ກໍານົດຂອບເຂດໃດກໍ່ຕາມ, ແຖວໃຫມ່ອາດຈະບໍ່ປາກົດຕົວຫນັງສື; \n ອາດຈະຖືກພິມສໍາລັບ
ແຖວໃໝ່; ແລະ \/ ອ້າງເຖິງຕົວຂັ້ນ, ໃນທີ່ນີ້ Backslash ຖືກຕີຄວາມໝາຍຕາມຕົວໜັງສື,
ຍົກເວັ້ນໃນ s ຄຳ ສັ່ງ.
ຄໍາສັ່ງສ່ວນໃຫຍ່ອາດຈະຖືກນໍາຫນ້າໂດຍທີ່ຢູ່ເພື່ອຊີ້ບອກຂອບເຂດການດໍາເນີນງານຂອງພວກເຂົາ. ເຫຼົ່ານັ້ນ
ທີ່ອາດຈະບໍ່ຖືກຫມາຍດ້ວຍຂ້າງລຸ່ມນີ້. ຖ້າຄໍາສັ່ງເອົາທີ່ຢູ່ແລະບໍ່ມີການສະຫນອງ,
ຈຸດຖືກນໍາໃຊ້. ຂໍ້ຍົກເວັ້ນພຽງແຕ່ແມ່ນ w ຄໍາສັ່ງ, ເຊິ່ງຕັ້ງໄວ້ໃນຕອນຕົ້ນ 0.$ທີ່ຢູ່ ໃນ
ລາຍລະອຽດ, `ໄລຍະ' ຖືກນໍາໃຊ້ເພື່ອເປັນຕົວແທນທີ່ຢູ່ໃດຫນຶ່ງແມ່ນສະຫນອງໃຫ້. ຄໍາສັ່ງຈໍານວນຫຼາຍກໍານົດ
ຄ່າຂອງຈຸດເປັນຜົນຂ້າງຄຽງ. ຖ້າເປັນດັ່ງນັ້ນ, ມັນຖືກຕັ້ງເປັນ 'ຜົນໄດ້ຮັບ' ຂອງການປ່ຽນແປງສະ ເໝີ:
string ຫວ່າງເປົ່າສໍາລັບການລຶບ, ຂໍ້ຄວາມໃຫມ່ສໍາລັບການແຊກ, ແລະອື່ນໆ (ແຕ່ເບິ່ງ the s ແລະ e
ຄໍາສັ່ງ).
ຂໍ້ຄວາມ ຄໍາສັ່ງ
a/ຂໍ້ຄວາມ/
or
a
ສາຍ of ຂໍ້ຄວາມ
. ໃສ່ຂໍ້ຄວາມເຂົ້າໄປໃນໄຟລ໌ຫຼັງຈາກໄລຍະ. ຕັ້ງຈຸດ.
c
i ຄືກັນກັບ a, ແຕ່ c ແທນທີ່ຂໍ້ຄວາມ, ໃນຂະນະທີ່ i inserts ກ່ອນທີ່ຈະ ລະດັບການ.
d ລຶບຂໍ້ຄວາມຢູ່ໃນຂອບເຂດ. ຕັ້ງຈຸດ.
s/regexp/ຂໍ້ຄວາມ/
ທົດແທນ ຂໍ້ຄວາມ ສໍາລັບການແຂ່ງຂັນທໍາອິດທີ່ຈະສະແດງອອກປົກກະຕິໃນລະດັບ. ຕັ້ງ
ຈຸດໄປຫາຂອບເຂດທີ່ດັດແກ້. ໃນ ຂໍ້ຄວາມ ລັກສະນະ & ຫຍໍ້ມາຈາກສາຍທີ່
ກົງກັບການສະແດງອອກ. Backslash ເຮັດວຽກເປັນປົກກະຕິເວັ້ນເສຍແຕ່ວ່າຕິດຕາມດ້ວຍຕົວເລກ: \d
ຫຍໍ້ມາຈາກ string ທີ່ກົງກັບ subexpression ເລີ່ມຕົ້ນໂດຍ the d-th ຊ້າຍ
ວົງເລັບ. ຖ້າ s ຖືກຕິດຕາມທັນທີດ້ວຍຕົວເລກ n, ຄືໃນ s2/x/y/, ການ n-ທີ
ການຈັບຄູ່ໃນໄລຍະແມ່ນຖືກທົດແທນ. ຖ້າຄໍາສັ່ງຖືກປະຕິບັດຕາມໂດຍ a g, ຄືໃນ
s/x/y/g, ການແຂ່ງຂັນທັງໝົດຢູ່ໃນຂອບເຂດແມ່ນຖືກປ່ຽນແທນ.
m a1
t a1 ຍ້າຍ (m) ຫຼືສໍາເນົາ (t) ລະດັບການຫຼັງຈາກນັ້ນ a1. ຕັ້ງຈຸດ.
ການສະແດງ ຄໍາສັ່ງ
p ພິມຂໍ້ຄວາມຢູ່ໃນຂອບເຂດ. ຕັ້ງຈຸດ.
= ພິມທີ່ຢູ່ແຖວ ແລະທີ່ຢູ່ຕົວອັກສອນຂອງຊ່ວງ.
=# ພິມພຽງແຕ່ທີ່ຢູ່ຕົວອັກສອນຂອງໄລຍະ.
ເອກະສານ ຄໍາສັ່ງ
* b ບັນຊີລາຍຊື່ໄຟລ໌
ກໍານົດໄຟລ໌ປະຈຸບັນເປັນໄຟລ໌ທໍາອິດທີ່ມີຊື່ໃນບັນຊີລາຍຊື່ທີ່ sam ຍັງມີຢູ່ໃນຂອງມັນ
ເມນູ. ບັນຊີລາຍຊື່ອາດຈະສະແດງອອກ <ແຜນການ 9 ຄໍາສັ່ງ ໃນກໍລະນີດັ່ງກ່າວນີ້, ຊື່ໄຟລ໌
ເອົາເປັນຄໍາ (ໃນຄວາມຫມາຍຂອງແກະ) ທີ່ສ້າງຂຶ້ນໂດຍຄໍາສັ່ງ Plan 9.
* B ບັນຊີລາຍຊື່ໄຟລ໌
ຄືກັນກັບ b, ຍົກເວັ້ນຊື່ໄຟລ໌ທີ່ບໍ່ໄດ້ຢູ່ໃນເມນູໄດ້ເຂົ້າໄປທີ່ນັ້ນ, ແລະໄຟລ໌ທັງຫມົດ
ຊື່ໃນບັນຊີລາຍການໄດ້ຮັບການກວດສອບ.
* n ພິມເມນູໄຟລ໌. ຮູບແບບແມ່ນ:
' ຫຼືຫວ່າງເປົ່າຊີ້ບອກວ່າໄຟລ໌ໄດ້ຖືກດັດແກ້ຫຼືສະອາດ,
- or + ຊີ້ບອກວ່າໄຟລ໌ແມ່ນຍັງບໍ່ໄດ້ອ່ານຫຼືຍັງໄດ້ອ່ານ (ໃນ terminal, * ວິທີການ
ມີຫຼາຍກວ່າຫນຶ່ງປ່ອງຢ້ຽມເປີດ),
. ຫຼືຫວ່າງເປົ່າຊີ້ບອກໄຟລ໌ໃນປັດຈຸບັນ,
ຫວ່າງເປົ່າ,
ແລະຊື່ໄຟລ໌.
* D ບັນຊີລາຍຊື່ໄຟລ໌
ລຶບໄຟລ໌ທີ່ມີຊື່ອອກຈາກເມນູ. ຖ້າບໍ່ມີໄຟລ໌ຖືກຕັ້ງຊື່, ໄຟລ໌ປະຈຸບັນຈະຖືກລຶບ.
ມັນເປັນຄວາມຜິດພາດທີ່ຈະ D ໄຟລ໌ດັດແກ້, ແຕ່ຕໍ່ມາ D ຈະລຶບໄຟລ໌ດັ່ງກ່າວ.
ຂ້າພະເຈົ້າ / O ຄໍາສັ່ງ
* e ຊື່ເອກະສານ
ແທນທີ່ໄຟລ໌ໂດຍເນື້ອໃນຂອງໄຟລ໌ພາຍນອກທີ່ມີຊື່. ຕັ້ງຈຸດໃສ່
ການເລີ່ມຕົ້ນຂອງໄຟລ໌.
r ຊື່ເອກະສານ
ແທນທີ່ຂໍ້ຄວາມໃນຂອບເຂດໂດຍເນື້ອໃນຂອງໄຟລ໌ພາຍນອກທີ່ມີຊື່. ຕັ້ງຈຸດ.
w ຊື່ເອກະສານ
ຂຽນໄລຍະ (ຄ່າເລີ່ມຕົ້ນ 0.$) ກັບໄຟລ໌ພາຍນອກທີ່ມີຊື່.
* f ຊື່ເອກະສານ
ຕັ້ງຊື່ໄຟລ໌ແລະພິມລາຍການເມນູຜົນໄດ້ຮັບ.
ຖ້າບໍ່ມີຊື່ໄຟລ໌ຈາກສິ່ງເຫຼົ່ານີ້, ຊື່ໄຟລ໌ປະຈຸບັນແມ່ນຖືກນໍາໃຊ້. e ສະເຫມີໄປ
ຕັ້ງຊື່ໄຟລ໌; r ແລະ w ເຮັດແນວນັ້ນຖ້າໄຟລ໌ບໍ່ມີຊື່.
< ແຜນການ 9- ຄໍາສັ່ງ
ແທນທີ່ຂອບເຂດໂດຍຜົນຜະລິດມາດຕະຖານຂອງຄໍາສັ່ງ Plan 9.
> ແຜນການ 9- ຄໍາສັ່ງ
ສົ່ງໄລຍະການປ້ອນຂໍ້ມູນມາດຕະຖານຂອງຄໍາສັ່ງ Plan 9.
| ແຜນການ 9- ຄໍາສັ່ງ
ສົ່ງໄລຍະການປ້ອນຂໍ້ມູນມາດຕະຖານ, ແລະແທນທີ່ດ້ວຍຜົນຜະລິດມາດຕະຖານ, ຂອງ
ແຜນການ 9 ຄໍາສັ່ງ.
* ! ແຜນການ 9- ຄໍາສັ່ງ
ດໍາເນີນການຄໍາສັ່ງ Plan 9.
* cd ລະບົບ
ປ່ຽນໄດເລກະທໍລີທີ່ເຮັດວຽກ. ຖ້າບໍ່ມີການລະບຸໄດເລກະທໍລີ, $ບ້ານ ຖືກນໍາໃຊ້.
ໃນໃດໆຂອງ <, >, | or !, ຖ້າຫາກວ່າ ແຜນການ 9 ຄໍາສັ່ງ ຖືກລະເວັ້ນສຸດທ້າຍ ແຜນການ 9 ຄໍາສັ່ງ (ອັນໃດນຶ່ງ
ປະເພດ) ຖືກທົດແທນ. ຖ້າ sam is ດາວໂຫຼດ (ການນໍາໃຊ້ຫນູແລະການສະແດງ raster, ບໍ່ແມ່ນ
ການນໍາໃຊ້ທາງເລືອກ -d), ! ກໍານົດມາດຕະຖານ input ເປັນ / dev / null, ແລະຖ້າບໍ່ດັ່ງນັ້ນ unassigned output
(stdout ສໍາລັບການ ! ແລະ >, stderr ສໍາລັບການທັງຫມົດ) ຖືກຈັດໃສ່ໃນ /tmp/sam.err ແລະສອງສາມສາຍທໍາອິດ
ຖືກພິມອອກ.
Loops ແລະ ເງື່ອນໄຂ
x/regexp/ ຄໍາສັ່ງ
ສໍາລັບແຕ່ລະຄໍາທີ່ກົງກັນຂອງການສະແດງຜົນປົກກະຕິໃນໄລຍະ, ດໍາເນີນການຄໍາສັ່ງທີ່ມີຈຸດຕັ້ງ
ກັບການແຂ່ງຂັນ. ຕັ້ງຈຸດໄປຫານັດສຸດທ້າຍ. ຖ້າຫາກວ່າການສະແດງອອກເປັນປົກກະຕິແລະຂອງຕົນ
slashes ຖືກຍົກເວັ້ນ, ຄາດວ່າ. ການຈັບຄູ່ສະຕຣິງ null ອາດຈະເກີດຂຶ້ນກ່ອນ
ທຸກໆລັກສະນະຂອງໄລຍະ ແລະໃນຕອນທ້າຍຂອງໄລຍະ.
y/regexp/ ຄໍາສັ່ງ
ຄື x, ແຕ່ດໍາເນີນການຄໍາສັ່ງສໍາລັບແຕ່ລະ substring ທີ່ຢູ່ກ່ອນ, ລະຫວ່າງ, ຫຼືຫຼັງຈາກ
ການແຂ່ງຂັນທີ່ຈະຖືກສ້າງຂື້ນໂດຍ x. ບໍ່ມີການສະແດງຜົນປົກກະຕິເລີ່ມຕົ້ນ.
Null substrings ອາດເກີດຂຶ້ນກ່ອນທຸກຕົວລະຄອນໃນຂອບເຂດ.
* X/regexp/ ຄໍາສັ່ງ
ສໍາລັບແຕ່ລະໄຟລ໌ທີ່ມີເມນູເຂົ້າກົງກັບການສະແດງຜົນປົກກະຕິ, ເຮັດໃຫ້ມັນເປັນ
ໄຟລ໌ປະຈຸບັນແລະດໍາເນີນການຄໍາສັ່ງ. ຖ້າການສະແດງອອກຖືກລະເວັ້ນ, ຄໍາສັ່ງຈະຖືກດໍາເນີນການ
ໃນທຸກໄຟລ໌.
* Y/regexp/ ຄໍາສັ່ງ
ຄືກັນກັບ X, ແຕ່ສໍາລັບໄຟລ໌ທີ່ບໍ່ກົງກັບການສະແດງຜົນປົກກະຕິ, ແລະ
ຕ້ອງການສະແດງອອກ.
g/regexp/ ຄໍາສັ່ງ
v/regexp/ ຄໍາສັ່ງ
ຖ້າໄລຍະປະກອບມີ (g) ຫຼືບໍ່ມີ (v) ການຈັບຄູ່ສໍາລັບການສະແດງອອກ, ກໍານົດ
dot ໃສ່ຂອບເຂດແລະດໍາເນີນການຄໍາສັ່ງ.
ສິ່ງເຫຼົ່ານີ້ອາດຈະຖືກຝັງໄວ້ຢ່າງເລິກເຊິ່ງ, ແຕ່ມີພຽງຕົວຢ່າງດຽວເທົ່ານັ້ນ X or Y ອາດຈະປາກົດ
ໃນຄໍາສັ່ງດຽວ. ຄໍາສັ່ງຫວ່າງເປົ່າໃນ an x or y ເລີ່ມຕົ້ນເປັນ p; ຄໍາສັ່ງຫວ່າງເປົ່າຢູ່ໃນ X
or Y ເລີ່ມຕົ້ນເປັນ f. g ແລະ v ບໍ່ມີຄ່າເລີ່ມຕົ້ນ.
ອື່ນisc
k ຕັ້ງເຄື່ອງໝາຍຂອງໄຟລ໌ປັດຈຸບັນເປັນໄລຍະ. ບໍ່ໄດ້ຕັ້ງຈຸດ.
* q ເຊົາ. ມັນເປັນຄວາມຜິດພາດທີ່ຈະເຊົາກັບໄຟລ໌ດັດແກ້, ແຕ່ວິນາທີ q ຈະປະສົບຜົນ ສຳ ເລັດ.
* u n ຍົກເລີກອັນສຸດທ້າຍ n (ຄ່າເລີ່ມຕົ້ນ 1) ຄໍາສັ່ງລະດັບສູງສຸດທີ່ປ່ຽນເນື້ອຫາ ຫຼືຊື່ຂອງ
ໄຟລ໌ປັດຈຸບັນ, ແລະໄຟລ໌ອື່ນໆທີ່ມີການປ່ຽນແປງຫຼ້າສຸດພ້ອມໆກັນກັບ
ການປ່ຽນແປງຂອງໄຟລ໌ໃນປະຈຸບັນ. ສໍາເລັດ u's ຍ້າຍອອກໄປຕື່ມອີກໃນທີ່ໃຊ້ເວລາ. ເທົ່ານັ້ນ
ຄໍາສັ່ງທີ່ເຈົ້າບໍ່ມີປະສິດທິພາບ cd, u, q, w ແລະ Dທີ່ຢູ່ ຖ້າຫາກວ່າ n ເປັນທາງລົບ, u
'ເຮັດຄືນ,' ຍົກເລີກການຍົກເລີກ, ກ້າວໄປຂ້າງຫນ້າໃນເວລາອີກເທື່ອຫນຶ່ງ.
(ຫວ່າງເປົ່າ)
ຖ້າໄລຍະມີຄວາມຊັດເຈນ, ໃຫ້ຕັ້ງຈຸດໃສ່ໄລຍະ. ຖ້າ sam ຖືກດາວໂຫຼດແລ້ວ, ໄດ້
ຈຸດຜົນໄດ້ຮັບຖືກເລືອກຢູ່ໃນຫນ້າຈໍ; ຖ້າບໍ່ດັ່ງນັ້ນມັນຖືກພິມອອກ. ຖ້າບໍ່ມີທີ່ຢູ່
ທີ່ລະບຸໄວ້ (ຄຳສັ່ງແມ່ນເສັ້ນໃໝ່) ຈຸດຖືກຂະຫຍາຍໄປໃນທິດທາງໃດໜຶ່ງໄປຫາເສັ້ນ
ຂອບເຂດແລະພິມ. ຖ້າຈຸດນັ້ນບໍ່ປ່ຽນແປງ, ມັນຈະຖືກຕັ້ງເປັນ .+1 ແລະພິມ.
ການຈັດກຸ່ມ ແລະ ຫຼາຍ ການປ່ຽນແປງ
ຄໍາສັ່ງອາດຈະຖືກຈັດກຸ່ມໂດຍການປິດພວກມັນຢູ່ໃນວົງເລັບ {}. ຄໍາສັ່ງພາຍໃນວົງເລັບຕ້ອງ
ປາກົດຢູ່ໃນເສັ້ນແຍກຕ່າງຫາກ (ບໍ່ຈໍາເປັນ backslashes ລະຫວ່າງຄໍາສັ່ງ). ຄວາມຫມາຍ, ເປັນ
ວົງເລັບເປີດແມ່ນຄ້າຍຄືຄໍາສັ່ງ: ມັນໃຊ້ເວລາທີ່ຢູ່ (ທາງເລືອກ) ແລະກໍານົດຈຸດສໍາລັບແຕ່ລະຍ່ອຍ.
ຄໍາສັ່ງ. ຄໍາສັ່ງພາຍໃນວົງເລັບຖືກປະຕິບັດຕາມລໍາດັບ, ແຕ່ການປ່ຽນແປງທີ່ເຮັດໂດຍຫນຶ່ງ
ຄໍາສັ່ງແມ່ນບໍ່ເຫັນກັບຄໍາສັ່ງອື່ນ (ເບິ່ງວັກຕໍ່ໄປ). ວົງເລັບອາດຈະຖືກຮັງ
arbitrarily.
ເມື່ອຄໍາສັ່ງເຮັດການປ່ຽນແປງຈໍານວນຫນຶ່ງຕໍ່ໄຟລ໌, ຄືກັບໃນ x/re/c/text/, ທີ່ຢູ່ຂອງ
ການປ່ຽນແປງທັງຫມົດຂອງໄຟລ໌ແມ່ນຄໍານວນໃນໄຟລ໌ຕົ້ນສະບັບ. ຖ້າການປ່ຽນແປງຢູ່ໃນ
ລໍາດັບ, ພວກມັນຖືກນໍາໃຊ້ກັບໄຟລ໌. ການແຊກຊ້ອນຢູ່ໃນທີ່ຢູ່ດຽວກັນແມ່ນ
catenated ເຂົ້າໄປໃນການແຊກດຽວປະກອບດ້ວຍການແຊກຫຼາຍໃນຄໍາສັ່ງທີ່ນໍາໃຊ້.
ໄດ້ ປາຍທາງ
ສິ່ງທີ່ຕໍ່ໄປນີ້ຫມາຍເຖິງພຶດຕິກໍາຂອງ sam ເມື່ອດາວໂຫລດ, ນັ້ນແມ່ນ, ເມື່ອປະຕິບັດງານເປັນ a
ສະແດງຕົວແກ້ໄຂໃນການສະແດງ raster. ນີ້ແມ່ນພຶດຕິກໍາເລີ່ມຕົ້ນ; ຮຽກຮ້ອງ sam ກັບ
-d (ບໍ່ມີການດາວໂຫຼດ) ທາງເລືອກໃຫ້ການເຂົ້າເຖິງພາສາຄໍາສັ່ງເທົ່ານັ້ນ.
ແຕ່ລະໄຟລ໌ອາດມີ XNUMX ຫຼືຫຼາຍກວ່າປ່ອງຢ້ຽມເປີດ. ແຕ່ລະປ່ອງຢ້ຽມແມ່ນທຽບເທົ່າແລະຖືກປັບປຸງ
ພ້ອມກັນກັບການປ່ຽນແປງໃນປ່ອງຢ້ຽມອື່ນໆໃນໄຟລ໌ດຽວກັນ. ແຕ່ລະປ່ອງຢ້ຽມມີ
ຄ່າເອກະລາດຂອງຈຸດ, ຊີ້ບອກໂດຍສະຕຣິງຍ່ອຍທີ່ເນັ້ນໃສ່ໃນຈໍສະແດງຜົນ. ຈຸດອາດຈະເປັນ
ຢູ່ໃນພາກພື້ນທີ່ບໍ່ຢູ່ໃນປ່ອງຢ້ຽມ. ປົກກະຕິແລ້ວມີ 'ປ່ອງຢ້ຽມປະຈຸບັນ', ໝາຍດ້ວຍ a
ຂອບມືດ, ເຊິ່ງໃຊ້ຂໍ້ຄວາມທີ່ພິມ ແລະຄຳສັ່ງການແກ້ໄຂ. ຂໍ້ຄວາມອາດຈະຖືກພິມແລະດັດແກ້
ຄືໃນ rio(1); ຍັງປຸ່ມ escape (ESC) ເລືອກ (ຕັ້ງຈຸດເປັນ) ຂໍ້ຄວາມທີ່ພິມຕັ້ງແຕ່ຄັ້ງສຸດທ້າຍ
ກົດປຸ່ມຫນູ.
ປຸ່ມ 3 ເມນູຄວບຄຸມການເຮັດວຽກຂອງປ່ອງຢ້ຽມ. ດ້ານເທິງຂອງເມນູສະຫນອງດັ່ງຕໍ່ໄປນີ້
ຜູ້ປະກອບການ, ແຕ່ລະຄົນໃຊ້ຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ rio-like ຕົວກະພິບເພື່ອເຕືອນສໍາລັບການເລືອກ a
ປ່ອງຢ້ຽມຫຼືກວາດສີ່ຫລ່ຽມ. 'ການກວາດ' ຮູບສີ່ຫລ່ຽມ null ໄດ້ຮັບປ່ອງຢ້ຽມຂະຫນາດໃຫຍ່,
disjoint ຈາກປ່ອງຢ້ຽມຄໍາສັ່ງຫຼືຫນ້າຈໍທັງຫມົດ, ຂຶ້ນກັບບ່ອນທີ່ null
ຮູບສີ່ແຈສາກແມ່ນ.
ໃຫມ່ ສ້າງໄຟລ໌ຫວ່າງເປົ່າໃໝ່.
ສູນ ສ້າງສໍາເນົາຂອງປ່ອງຢ້ຽມທີ່ມີຢູ່ແລ້ວ.
ປັບຂະຫນາດ As in rio.
ໃກ້ ລຶບປ່ອງຢ້ຽມ. ຢູ່ໃນປ່ອງຢ້ຽມສຸດທ້າຍຂອງໄຟລ໌, ໃກ້ ເທົ່າກັບ a D ສໍາລັບການ
ໄຟລ໌.
ຂຽນ ເທົ່າກັບ ກ w ສຳ ລັບເອກະສານ.
ຂ້າງລຸ່ມນີ້ຕົວປະຕິບັດການເຫຼົ່ານີ້ແມ່ນບັນຊີລາຍຊື່ຂອງໄຟລ໌ທີ່ມີຢູ່, ເລີ່ມຕົ້ນດ້ວຍ ~~ຊຳ~~, ຄໍາສັ່ງ
ປ່ອງຢ້ຽມ. ການເລືອກໄຟລ໌ຈາກບັນຊີລາຍການເຮັດໃຫ້ປ່ອງຢ້ຽມທີ່ໃຊ້ຫຼ້າສຸດຢູ່ໃນໄຟລ໌ນັ້ນ
ໃນປັດຈຸບັນ, ເວັ້ນເສຍແຕ່ວ່າມັນເປັນປັດຈຸບັນແລ້ວ, ໃນກໍລະນີໃດກໍ່ຕາມ, ການຄັດເລືອກຮອບວຽນໂດຍຜ່ານການເປີດ
ປ່ອງຢ້ຽມ. ຖ້າບໍ່ມີປ່ອງຢ້ຽມເປີດຢູ່ໃນໄຟລ໌, ຜູ້ໃຊ້ຖືກເຕືອນໃຫ້ເປີດຫນຶ່ງ. ໄຟລ໌
ອື່ນກ່ວາ ~~ຊຳ~~ ຖືກຫມາຍດ້ວຍຫນຶ່ງໃນລັກສະນະ -+* ອີງຕາມສູນ, ຫນຶ່ງ, ຫຼື
ປ່ອງຢ້ຽມເພີ່ມເຕີມເປີດຢູ່ໃນໄຟລ໌. ເຄື່ອງຫມາຍເພີ່ມເຕີມປາກົດຢູ່ໃນໄຟລ໌ໃນປະຈຸບັນ
ປ່ອງຢ້ຽມແລະໃບຄໍາຮ້ອງດຽວ, ', ໃນໄຟລ໌ດັດແກ້ນັບຕັ້ງແຕ່ການຂຽນຄັ້ງສຸດທ້າຍ.
ປ່ອງຢ້ຽມຄໍາສັ່ງ, ສ້າງອັດຕະໂນມັດເມື່ອ sam ເລີ່ມຕົ້ນ, ເປັນປ່ອງຢ້ຽມທໍາມະດາຍົກເວັ້ນ
ຂໍ້ຄວາມທີ່ພິມໃສ່ມັນຖືກຕີຄວາມຫມາຍເປັນຄໍາສັ່ງສໍາລັບບັນນາທິການແທນທີ່ຈະເປັນຂໍ້ຄວາມ passive,
ແລະຂໍ້ຄວາມທີ່ພິມໂດຍຄໍາສັ່ງບັນນາທິການຈະປາກົດຢູ່ໃນມັນ. ພຶດຕິກໍາແມ່ນຄ້າຍຄື rio, ກັບ
'ຈຸດອອກ' ທີ່ແຍກຄໍາສັ່ງທີ່ຖືກພິມອອກຈາກຜົນໄດ້ຮັບທີ່ຜ່ານມາ. ພິມຄໍາສັ່ງ
ຢູ່ໃນປ່ອງຢ້ຽມຄໍາສັ່ງນໍາໃຊ້ກັບໄຟລ໌ທີ່ເປີດໃນປະຈຸບັນ - ໄຟລ໌ໃນປະຈຸບັນຫຼ້າສຸດ
window.
ການຫມູນໃຊ້ ຂໍ້ຄວາມ
ປຸ່ມ 1 ປ່ຽນແປງການເລືອກ, ຄືກັນກັບ rio. ຊີ້ໄປທີ່ໜ້າຈໍທີ່ບໍ່ແມ່ນປັດຈຸບັນດ້ວຍປຸ່ມ 1
ເຮັດໃຫ້ມັນປະຈຸບັນ; ພາຍໃນປ່ອງຢ້ຽມປະຈຸບັນ, ປຸ່ມ 1 ເລືອກຂໍ້ຄວາມ, ດັ່ງນັ້ນການຕັ້ງຈຸດ.
Double-clicking ເລືອກຂໍ້ຄວາມເພື່ອຂອບເຂດຂອງຄໍາສັບຕ່າງໆ, ເສັ້ນ, ສະຕຣິງທີ່ຍົກມາຫຼື
ສະຕຣິງທີ່ມີວົງເລັບ, ຂຶ້ນກັບຂໍ້ຄວາມໃນເວລາຄລິກ.
ປຸ່ມ 2 ສະຫນອງເມນູຂອງຄໍາສັ່ງການແກ້ໄຂ:
ການຕັດ ລຶບຈຸດ ແລະບັນທຶກຂໍ້ຄວາມທີ່ຖືກລຶບໄວ້ໃນ snarf buffer.
paste ແທນທີ່ຂໍ້ຄວາມໃນຈຸດໂດຍເນື້ອໃນຂອງ snarf buffer.
ງູ ບັນທຶກຂໍ້ຄວາມເປັນຈຸດໃນ snarf buffer.
ທໍ່ ສົ່ງຂໍ້ຄວາມໃນການຄັດເລືອກເປັນຂໍ້ຄວາມ plumb. ຖ້າການເລືອກແມ່ນຫວ່າງເປົ່າ, the
ຂໍ້ຄວາມທີ່ຂັ້ນດ້ວຍຊ່ອງຫວ່າງສີຂາວຈະຖືກສົ່ງເປັນຂໍ້ຄວາມ plumb ທີ່ມີ a ຄລິກ
ຄຸນລັກສະນະທີ່ກໍານົດບ່ອນທີ່ການຄັດເລືອກຢູ່ (ເບິ່ງ ທໍ່(7)).
ເບິ່ງ ຄົ້ນຫາຕໍ່ໄປສໍາລັບການປະກົດຕົວຂອງຕົວຫນັງສືໃນຈຸດ. ຖ້າຈຸດແມ່ນ
null string, ຂໍ້ຄວາມໃນ snarf buffer ຖືກນໍາໃຊ້. ບັຟເຟີ snarf ບໍ່ໄດ້ຮັບຜົນກະທົບ.
ແລກປ່ຽນ snarf buffers ກັບ rio.
/regexp
ຄົ້ນຫາຕໍ່ກັບການຈັບຄູ່ຕໍ່ໄປຂອງການສະແດງຜົນປົກກະຕິຫຼ້າສຸດທີ່ພິມໃນ a
ຄໍາສັ່ງ. (ບໍ່ຢູ່ໃນປ່ອງຢ້ຽມຄໍາສັ່ງ.)
ສົ່ງ ສົ່ງຂໍ້ຄວາມເປັນຈຸດ, ຫຼື snarf buffer ຖ້າຈຸດແມ່ນສະຕຣິງ null, ຄືກັບວ່າມັນເປັນ.
ພິມໃສ່ປ່ອງຢ້ຽມຄໍາສັ່ງ. ບັນທຶກຂໍ້ຄວາມທີ່ສົ່ງໃນ snarf buffer. (ຄໍາສັ່ງ
ປ່ອງຢ້ຽມເທົ່ານັ້ນ.)
ພາຍນອກ ການສື່ສານ
Sam ຟັງ ດັດແກ້ ພອດທໍ່ນ້ຳ. ຖ້າທໍ່ປະປາບໍ່ເຄື່ອນໄຫວ, ຕາມການຮຽກຮ້ອງ sam ສ້າງ
ທໍ່ທີ່ມີຊື່ /srv/sam.ຜູ້ໃຊ້ ເຊິ່ງເຮັດຫນ້າທີ່ເປັນແຫຼ່ງເພີ່ມເຕີມຂອງຄໍາສັ່ງ. ລັກສະນະ
ຂຽນໃສ່ທໍ່ທີ່ມີຊື່ຖືກປະຕິບັດຄືກັບວ່າພວກເຂົາຖືກພິມຢູ່ໃນປ່ອງຢ້ຽມຄໍາສັ່ງ.
B ແມ່ນຄໍາສັ່ງລະດັບ shell ທີ່ເຮັດໃຫ້ເກີດຕົວຢ່າງຂອງ sam ແລ່ນຢູ່ໃນ terminal ດຽວກັນກັບ
ໂຫຼດຊື່ ໄຟ. B ໃຊ້ທໍ່ປະປາ ຫຼືທໍ່ທີ່ມີຊື່, ການບໍລິການໃດກໍ່ຕາມ
ມີໃຫ້. ຖ້າທໍ່ລະບາຍນ້ໍາບໍ່ໄດ້ເປີດໃຊ້, ທາງເລືອກທີ່ອະນຸຍາດໃຫ້ກໍານົດຫມາຍເລກແຖວ
ສໍາລັບຕໍາແຫນ່ງເບື້ອງຕົ້ນທີ່ຈະສະແດງຢູ່ໃນໄຟລ໌ທີ່ມີຊື່ສຸດທ້າຍ (ທໍ່ນ້ໍາສະຫນອງເພີ່ມເຕີມ
ກົນໄກທົ່ວໄປສໍາລັບຄວາມສາມາດນີ້).
E ເປັນຄໍາສັ່ງລະດັບ shell ທີ່ສາມາດຖືກນໍາໃຊ້ເປັນ $ EDITOR ໃນສະພາບແວດລ້ອມ Unix. ມັນແລ່ນ B
on ເອກະສານ ແລະຫຼັງຈາກນັ້ນບໍ່ໄດ້ອອກຈົນກ່ວາ ເອກະສານ ມີການປ່ຽນແປງ, ເຊິ່ງຖືກປະຕິບັດເປັນສັນຍານວ່າ ເອກະສານ
ຖືກແກ້ໄຂແລ້ວ.
ຜິດປົກກະຕິ ການສິ້ນສຸດ
If sam ຢຸດຕິການນອກເໜືອໄປຈາກ ກ q ຄໍາສັ່ງ (ໂດຍການວາງສາຍ, ການລຶບປ່ອງຢ້ຽມຂອງມັນ, ແລະອື່ນໆ),
ໄຟລ໌ທີ່ແກ້ໄຂໄດ້ຖືກບັນທຶກໄວ້ໃນໄຟລ໌ປະຕິບັດໄດ້, $HOME/sam.save. ໂຄງການນີ້, ໃນເວລາທີ່
ດໍາເນີນການ, ຖາມວ່າຈະຂຽນແຕ່ລະໄຟລ໌ກັບຄືນໄປບ່ອນໄຟລ໌ພາຍນອກ. ຄໍາຕອບເຮັດໃຫ້ເກີດ
ການຂຽນ; ສິ່ງອື່ນຂ້າມໄຟລ໌.
ໃຊ້ samplan9 ອອນລາຍໂດຍໃຊ້ບໍລິການ onworks.net