edposix - ออนไลน์ในคลาวด์

นี่คือคำสั่ง edposix ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


ed — แก้ไขข้อความ

เรื่องย่อ


ed [-หน้า เชือก] [-s] [ไฟล์]

DESCRIPTION


พื้นที่ ed ยูทิลิตี้เป็นตัวแก้ไขข้อความแบบบรรทัดที่ใช้สองโหมด: คำสั่ง โหมด และ อินพุต
โหมด. ในโหมดคำสั่ง อักขระอินพุตจะถูกตีความว่าเป็นคำสั่ง และในอินพุต
โหมดจะตีความว่าเป็นข้อความ ดูส่วนคำอธิบายเพิ่มเติม

ถ้าตัวถูกดำเนินการคือ '-'ผลลัพธ์ไม่ระบุ

OPTIONS


พื้นที่ ed ยูทิลิตี้จะต้องสอดคล้องกับปริมาณคำจำกัดความพื้นฐานของ POSIX.1-2008 Section 12.2,
ประโยชน์ วากยสัมพันธ์ แนวทางยกเว้นการใช้งานที่ไม่ระบุรายละเอียดของ '-'.

รองรับตัวเลือกต่อไปนี้:

-หน้า เชือก ใช้ เชือก เป็นสตริงพร้อมต์เมื่ออยู่ในโหมดคำสั่ง โดยค่าเริ่มต้นจะมี
ไม่มีสตริงพร้อมท์

-s ระงับการเขียนการนับไบต์โดย e, E, rและ w คำสั่งและของ '!'
ทันทีหลังจาก !คำสั่ง.

ตัวดำเนินการ


ตัวถูกดำเนินการดังต่อไปนี้จะได้รับการสนับสนุน:

ไฟล์ ถ้า ไฟล์ อาร์กิวเมนต์จะได้รับ ed จะจำลอง an e คำสั่งในไฟล์ชื่อ
โดยชื่อพาธ ไฟล์ก่อนรับคำสั่งจากอินพุตมาตรฐาน

STDIN


อินพุตมาตรฐานต้องเป็นไฟล์ข้อความที่ประกอบด้วยคำสั่งตามที่อธิบายไว้ใน
ส่วนคำอธิบายเพิ่มเติม

INPUT ไฟล์


ไฟล์อินพุตจะเป็นไฟล์ข้อความ

และพวกเรา ตัวแปร


ตัวแปรสภาพแวดล้อมต่อไปนี้จะส่งผลต่อการดำเนินการของ ed:

หน้าหลัก กำหนดชื่อพาธของโฮมไดเร็กทอรีของผู้ใช้

ภาษา ระบุค่าเริ่มต้นสำหรับตัวแปรการทำให้เป็นสากลที่ไม่ได้ตั้งค่าหรือ
โมฆะ. (ดูปริมาณคำจำกัดความพื้นฐานของ POSIX.1-2008 Section 8.2,
สากล ตัวแปร เพื่อความเหนือกว่าของความเป็นสากล
ตัวแปรที่ใช้ในการกำหนดค่าของหมวดหมู่สถานที่)

LC_ALL หากตั้งค่าเป็นค่าสตริงที่ไม่ว่าง ให้แทนที่ค่าของค่าอื่นๆ ทั้งหมด
ตัวแปรความเป็นสากล

LC_COLLATE
กำหนดโลแคลสำหรับพฤติกรรมของช่วง คลาสสมมูล และมัลติ-
องค์ประกอบการเรียงอักขระภายในนิพจน์ทั่วไป

LC_CTYPE กำหนดสถานที่สำหรับการตีความลำดับไบต์ของข้อมูลข้อความ
เป็นอักขระ (เช่น ไบต์เดี่ยวเมื่อเทียบกับอักขระหลายไบต์ใน
อาร์กิวเมนต์และไฟล์อินพุต) และพฤติกรรมของคลาสอักขระภายใน Regular
นิพจน์

LC_MESSAGES
กำหนดโลแคลที่ควรใช้เพื่อส่งผลต่อรูปแบบและเนื้อหาของ
ข้อความวินิจฉัยที่เขียนถึงข้อผิดพลาดมาตรฐานและข้อความข้อมูลที่เขียน
สู่เอาต์พุตมาตรฐาน

นศ กำหนดตำแหน่งของแค็ตตาล็อกข้อความสำหรับการประมวลผลของ LC_MESSAGES.

อะซิงโครนัส กิจกรรม


พื้นที่ ed ยูทิลิตี้จะต้องดำเนินการตามมาตรฐานสำหรับสัญญาณทั้งหมด (ดู ASYNCHRONOUS EVENTS
ส่วนเข้า Section 1.4, ประโยชน์ รายละเอียด เริ่มต้น) โดยมีข้อยกเว้นดังต่อไปนี้:

ลงชื่อ ed ยูทิลิตี้จะขัดจังหวะกิจกรรมปัจจุบัน เขียนสตริง "?\n" ไปยัง
เอาต์พุตมาตรฐาน และกลับสู่โหมดคำสั่ง (ดูคำอธิบายเพิ่มเติม
มาตรา).

SIGHUP หากบัฟเฟอร์ไม่ว่างเปล่าและมีการเปลี่ยนแปลงตั้งแต่การเขียนครั้งล่าสุด the ed ประโยชน์
จะพยายามเขียนสำเนาของบัฟเฟอร์ในไฟล์ อันดับแรก ไฟล์ชื่อ
เอ็ดฮูป ในไดเร็กทอรีปัจจุบันจะใช้; หากไม่สำเร็จไฟล์ชื่อ
เอ็ดฮูป ในไดเร็กทอรีที่ชื่อ หน้าหลัก ตัวแปรสภาพแวดล้อมจะต้องถูกนำมาใช้ ใน
ทุกกรณี ed ยูทิลิตี้จะออกโดยไม่ต้องเขียนไฟล์ไปยังปัจจุบัน
จำชื่อพา ธ และไม่กลับสู่โหมดคำสั่ง

ซิกควิท ed ยูทิลิตี้จะละเว้นเหตุการณ์นี้

STDOUT


คำสั่งแก้ไขต่างๆ และคุณสมบัติการแจ้ง (ดู -หน้า) เขียนไปยังเอาต์พุตมาตรฐาน as
อธิบายไว้ในส่วน EXTENDED DESCRIPTION

สแตเดอร์


ข้อผิดพลาดมาตรฐานจะใช้สำหรับข้อความวินิจฉัยเท่านั้น

เอาท์พุท ไฟล์


ไฟล์ที่ส่งออกจะเป็นไฟล์ข้อความที่มีรูปแบบขึ้นอยู่กับคำสั่งแก้ไข
ให้

ขยาย DESCRIPTION


พื้นที่ ed ยูทิลิตี้จะต้องดำเนินการกับสำเนาของไฟล์ที่กำลังแก้ไข การเปลี่ยนแปลงที่ทำกับสำเนา
จะไม่มีผลกับไฟล์จนกว่า a w (เขียน) คำสั่งที่ได้รับ สำเนาของข้อความ
จะเรียกว่า กันชน.

คำสั่ง ed มีโครงสร้างที่เรียบง่ายและสม่ำเสมอ: ศูนย์ หนึ่ง หรือสอง ที่อยู่ ตาม
ด้วยอักษรตัวเดียว คำสั่ง, อาจตามด้วยพารามิเตอร์ของคำสั่งนั้น เหล่านี้
ที่อยู่ระบุหนึ่งบรรทัดขึ้นไปในบัฟเฟอร์ ทุกคำสั่งที่ต้องใช้ที่อยู่
มีที่อยู่เริ่มต้น เพื่อให้สามารถละเว้นที่อยู่ได้บ่อยมาก ถ้า -หน้า ตัวเลือก
ถูกระบุ สตริงพร้อมต์จะถูกเขียนไปยังเอาต์พุตมาตรฐานก่อนแต่ละคำสั่งคือ
อ่าน.

โดยทั่วไป เพียงหนึ่งคำสั่งเท่านั้นที่สามารถปรากฏบนบรรทัด คำสั่งบางคำสั่งอนุญาตให้ข้อความเป็น
ป้อนข้อมูล. ข้อความนี้ถูกวางไว้ในตำแหน่งที่เหมาะสมในบัฟเฟอร์ ในขณะที่ ed กำลังรับ
ข้อความก็ว่าอยู่ใน อินพุต โหมด. ในโหมดนี้ จะไม่มีการจดจำคำสั่งใดๆ ทั้งหมด
ข้อมูลที่ป้อนเป็นเพียงการรวบรวม โหมดอินพุตสิ้นสุดลงโดยการป้อนบรรทัดที่ประกอบด้วยสอง
ตัวอักษร: a ('.') ตามด้วย a . เส้นนี้ไม่ถือเป็นส่วนหนึ่ง
ของข้อความที่ป้อน

ปกติ การแสดงออก in ed
พื้นที่ ed ยูทิลิตีจะต้องสนับสนุนนิพจน์ทั่วไปพื้นฐานตามที่อธิบายไว้ใน Base
ปริมาณคำจำกัดความของ POSIX.1-2008, Section 9.3, ขั้นพื้นฐาน ปกติ การแสดงออก. ตั้งแต่ประจำ
นิพจน์ใน ed จะจับคู่กับบรรทัดเดียวเสมอ (ยกเว้นการสิ้นสุด
อักขระ) ไม่เคยขัดกับข้อความส่วนที่ใหญ่กว่า ไม่มีทางสำหรับ a
นิพจน์ทั่วไปเพื่อให้ตรงกับa .

RE null จะเทียบเท่ากับ RE ล่าสุดที่พบ

นิพจน์ทั่วไปใช้ในที่อยู่เพื่อระบุบรรทัด และในบางคำสั่ง (for
ตัวอย่างเช่น s คำสั่งแทน) เพื่อระบุส่วนของบรรทัดที่จะแทนที่

ที่อยู่จัดส่ง in ed
ที่อยู่ใน ed เกี่ยวข้องกับบรรทัดปัจจุบัน โดยทั่วไปบรรทัดปัจจุบันคือบรรทัดสุดท้าย
ได้รับผลกระทบจากคำสั่ง หมายเลขบรรทัดปัจจุบันคือที่อยู่ของบรรทัดปัจจุบัน ถ้า
แก้ไขบัฟเฟอร์ไม่ว่างเปล่า ค่าเริ่มต้นสำหรับบรรทัดปัจจุบันจะเป็นบรรทัดสุดท้ายใน
แก้ไขบัฟเฟอร์; มิฉะนั้นศูนย์

ที่อยู่จะถูกสร้างขึ้นดังนี้:

1. The อักขระ ('.') จะอยู่ที่บรรทัดปัจจุบัน

2. ดิ อักขระ ('$') จะอยู่ที่บรรทัดสุดท้ายของบัฟเฟอร์การแก้ไข

3. เลขทศนิยมบวก n จะกล่าวถึง nบรรทัดที่หนึ่งของบัฟเฟอร์การแก้ไข

4. The -x คู่อักขระ ("เอ็กซ์") ให้อยู่ในบรรทัดที่มีเครื่องหมาย
ชื่อตัวละคร xซึ่งจะเป็นอักษรตัวพิมพ์เล็กจากชุดอักขระแบบพกพา
จะเป็นความผิดถ้าไม่ได้ตั้งค่าอักขระให้ทำเครื่องหมายเส้นหรือถ้าบรรทัด
ที่ทำเครื่องหมายไว้ไม่มีอยู่ในบัฟเฟอร์การแก้ไข

5. A BRE ล้อมรอบด้วย ตัวอักษร ('/') จะอยู่ที่บรรทัดแรกที่พบโดย
ค้นหาไปข้างหน้าจากบรรทัดต่อจากบรรทัดปัจจุบันไปยังจุดสิ้นสุดของการแก้ไข
บัฟเฟอร์และหยุดที่บรรทัดแรกที่บรรทัดไม่รวมการสิ้นสุด
ตรงกับ BRE BRE ประกอบด้วย null BRE ที่คั่นด้วยคู่ของ
อักขระจะต้องอยู่ในบรรทัดถัดไปซึ่งบรรทัดนั้นไม่รวม
สิ้นสุด ตรงกับ BRE ล่าสุดที่พบ นอกจากนี้ที่สอง
สามารถละเว้นได้เมื่อสิ้นสุดบรรทัดคำสั่ง ภายใน BRE, a
- คู่ ("\/") จะเป็นตัวแทนของตัวอักษร แทนBRE
ตัวคั่น ถ้าจำเป็น การค้นหาจะวนรอบจุดเริ่มต้นของบัฟเฟอร์
และดำเนินต่อไปจนถึงและรวมถึงบรรทัดปัจจุบันเพื่อให้บัฟเฟอร์ทั้งหมดเป็น
ค้นหา

6. A BRE ล้อมรอบด้วย ตัวอักษร ('?') จะอยู่ที่บรรทัดแรกที่พบ
โดยการค้นหาย้อนกลับจากบรรทัดก่อนหน้าบรรทัดปัจจุบันไปยังจุดเริ่มต้น
ของบัฟเฟอร์การแก้ไขและหยุดที่บรรทัดแรกที่บรรทัดนั้นไม่รวม
สิ้นสุด ตรงกับ BRE BRE ประกอบด้วย null BRE ที่คั่นด้วย a
คู่ของ ตัวอักษร ("??") จะกล่าวถึงบรรทัดก่อนหน้าซึ่ง
เส้นยกเว้นการสิ้นสุด ตรงกับ BRE ล่าสุดที่พบ ใน
นอกจากนี้ที่สอง สามารถละเว้นได้เมื่อสิ้นสุดบรรทัดคำสั่ง
ภายใน BRE, a - คู่ ("\?") จะเป็นตัวแทนของตัวอักษร
แทนตัวคั่น BRE หากจำเป็น การค้นหาจะสิ้นสุด
จนถึงจุดสิ้นสุดของบัฟเฟอร์และดำเนินการต่อไปจนถึงและรวมถึงบรรทัดปัจจุบันด้วยดังนั้น
ว่ามีการค้นหาบัฟเฟอร์ทั้งหมด

7. อา ('+') หรือ อักขระ ('-') ตามด้วยเลขทศนิยม
ระบุบรรทัดปัจจุบันบวกหรือลบตัวเลข อา หรือ อักขระ
ไม่ตามด้วยเลขทศนิยมให้อยู่ในบรรทัดปัจจุบันบวกหรือลบ 1

ที่อยู่สามารถตามด้วยศูนย์หรือออฟเซ็ตที่อยู่เพิ่มเติม หรือไม่ก็ได้ -แยกออกจากกัน.
ออฟเซ็ตที่อยู่ถูกสร้างขึ้นดังนี้:

* อา หรือ ตัวอักษรตามด้วยเลขทศนิยมให้เติม or
ลบตามจำนวนบรรทัดที่ระบุไปยังหรือออกจากที่อยู่ อา
ลงชื่อ> หรือ อักขระที่ไม่ตามด้วยเลขทศนิยมให้บวกหรือลบ1
ไปหรือกลับจากที่อยู่

* เลขทศนิยมจะเพิ่มจำนวนบรรทัดที่ระบุไปยังที่อยู่

จะต้องไม่เป็นข้อผิดพลาดสำหรับค่าที่อยู่กลางที่จะน้อยกว่าศูนย์หรือมากกว่า
กว่าบรรทัดสุดท้ายในบัฟเฟอร์การแก้ไข มันจะเป็นข้อผิดพลาดสำหรับค่าที่อยู่สุดท้ายถึง
มีค่าน้อยกว่าศูนย์หรือมากกว่าบรรทัดสุดท้ายในบัฟเฟอร์การแก้ไข มันจะเป็นความผิดพลาด
หากการค้นหา BRE ไม่พบบรรทัดที่ตรงกัน

คำสั่งยอมรับที่อยู่ศูนย์ หนึ่งหรือสองแห่ง หากมีที่อยู่เกินจำนวนที่กำหนด
ให้กับคำสั่งที่ต้องการศูนย์ที่อยู่ มันจะเป็นข้อผิดพลาด มิฉะนั้น,
หากมีการกำหนดที่อยู่ให้กับคำสั่งมากกว่าจำนวนที่ต้องการ ที่อยู่
ที่ระบุก่อนจะถูกประเมินแล้วทิ้งจนครบจำนวนที่ถูกต้อง
ที่อยู่ยังคงอยู่ สำหรับคำสั่งที่ระบุ

ที่อยู่จะแยกจากกันโดย a (',') หรือ อักขระ
(';'). ในกรณีของ ตัวคั่นบรรทัดปัจจุบัน ('.') จะถูกตั้งค่าเป็น
ที่อยู่แรกแล้วจึงจะคำนวณที่อยู่ที่สองเท่านั้น คุณลักษณะนี้สามารถ
ใช้เพื่อกำหนดเส้นเริ่มต้นสำหรับการค้นหาไปข้างหน้าและข้างหลัง ดูกฎข้อ 5
และ 6

ที่อยู่สามารถละเว้นได้ที่ด้านใดด้านหนึ่งของ หรือ ตัวคั่นซึ่งใน
กรณีที่คู่ที่อยู่ที่ได้จะเป็นดังนี้:

┌───────────┬─────────────┐
ระบุผลลัพธ์
├───────────┼─────────────┤
│, │ 1 , $ │
│, แอดเดรส │ 1 , แอดเดรส │
│addr , │ แอดเดอร์ , แอดเดอร์ │
│; . ; $ │
│; แอดเดอร์ │ . ; แอดเดอร์ │
เกด ; │ แอดเดอร์ ; แอดเดอร์ │
└───────────┴─────────────┘
ใด ๆ อักขระที่อยู่ระหว่างที่อยู่ ตัวคั่นที่อยู่ หรือออฟเซ็ตที่อยู่
จะถูกละเลย

คำสั่ง in ed
ในรายการต่อไปนี้ของ ed คำสั่ง ที่อยู่เริ่มต้นจะแสดงอยู่ในวงเล็บ NS
จำนวนที่อยู่ที่แสดงในค่าเริ่มต้นจะเป็นจำนวนที่คาดหวังโดยคำสั่ง ดิ
วงเล็บไม่ได้เป็นส่วนหนึ่งของที่อยู่ แสดงว่าที่อยู่ที่ระบุคือ
ค่าเริ่มต้น.

โดยทั่วไปจะไม่ถูกต้องสำหรับมากกว่าหนึ่งคำสั่งที่จะปรากฏบนบรรทัด อย่างไรก็ตาม ใดๆ
คำสั่ง (ยกเว้น e, E, f, q, Q, r, wและ !) สามารถต่อท้ายด้วยตัวอักษร l, n,หรือ p, ใน
ในกรณีใด เว้นแต่ l, nและ p คำสั่ง คำสั่งจะถูกดำเนินการแล้ว
บรรทัดปัจจุบันใหม่จะต้องเขียนตามที่อธิบายไว้ด้านล่างภายใต้ l, nและ p คำสั่ง
เมื่อ l, n,หรือ p คำต่อท้ายใช้กับ an l, n,หรือ p คำสั่งคำสั่งจะเขียนถึง
เอาต์พุตมาตรฐานตามที่อธิบายไว้ด้านล่าง แต่ไม่ได้ระบุว่าส่วนต่อท้ายเขียน
บรรทัดปัจจุบันอีกครั้งในรูปแบบที่ร้องขอหรือว่าคำต่อท้ายไม่มีผลหรือไม่ สำหรับ
ตัวอย่างเช่น pl คำสั่ง (ฐาน p สั่งการด้วย an l ต่อท้าย) จะเขียนเพียงแค่
บรรทัดปัจจุบันหรือเขียนสองครั้ง—หนึ่งครั้งตามที่ระบุไว้สำหรับ p และครั้งเดียวตามที่กำหนดไว้สำหรับ l. นอกจากนี้
g, G, vและ V คำสั่งให้ใช้คำสั่งเป็นพารามิเตอร์

แต่ละองค์ประกอบที่อยู่นำหน้าด้วยศูนย์หรือมากกว่า ตัวอักษร คำสั่ง
ตัวอักษรนำหน้าด้วยศูนย์หรือมากกว่า ตัวอักษร หากเป็นอักษรต่อท้าย (l, n,หรือ p)
ได้รับแอปพลิเคชันจะต้องตรวจสอบให้แน่ใจว่าเป็นไปตามคำสั่งทันที

พื้นที่ e, E, f, rและ w คำสั่งจะใช้ตัวเลือก ไฟล์ พารามิเตอร์แยกจาก
จดหมายคำสั่งตั้งแต่หนึ่งฉบับขึ้นไป ตัวอักษร

หากมีการเปลี่ยนแปลงในบัฟเฟอร์ตั้งแต่ครั้งล่าสุด w คำสั่งที่เขียนทั้งหมด
กันชน, ed จะเตือนผู้ใช้หากมีความพยายามที่จะทำลายบัฟเฟอร์ตัวแก้ไขผ่านทาง
e or q คำสั่ง NS ed ยูทิลิตี้จะเขียนสตริง:

"?\n"

(ตามด้วยข้อความอธิบาย if ช่วย โหมด ได้รับการเปิดใช้งานผ่านทาง H คำสั่ง) ถึง
เอาต์พุตมาตรฐานและจะดำเนินต่อไปในโหมดคำสั่งโดยที่หมายเลขบรรทัดปัจจุบันไม่เปลี่ยนแปลง
ถ้า e or q คำสั่งซ้ำโดยไม่มีคำสั่งแทรกแซง ให้มีผลใช้บังคับ

หากเทอร์มินัลไม่เชื่อมต่อ (ดูโวลุ่มคำจำกัดความพื้นฐานของ POSIX.1-2008 บท 11,
General สถานีปลายทาง อินเตอร์เฟซ, โมเด็มตัดการเชื่อมต่อและปิดเทอร์มินัลอุปกรณ์) ตรวจพบ:

* หากมาพร้อมกับสัญญาณ SIGHUP แสดงว่า ed ยูทิลิตี้จะต้องดำเนินการตามที่อธิบายไว้ใน
ส่วน ASYNCHRONOUS EVENTS สำหรับสัญญาณ SIGHUP

* หากไม่มีสัญญาณ SIGHUP กำกับ ed ยูทิลิตี้จะทำหน้าที่เป็นส่วนท้ายของไฟล์
ตรวจพบในอินพุตมาตรฐาน

หากตรวจพบการสิ้นสุดไฟล์ในอินพุตมาตรฐาน:

* ถ้า ed ยูทิลิตี้อยู่ในโหมดอินพุต ed จะยุติโหมดอินพุตและกลับสู่
โหมดคำสั่ง ไม่ได้ระบุหากมีการป้อนบรรทัดบางส่วน (นั่นคือ ป้อนข้อความ
โดยไม่สิ้นสุด ) จะถูกละทิ้งจากข้อความที่ป้อน

* ถ้า ed ยูทิลิตีอยู่ในโหมดคำสั่ง จะทำหน้าที่เสมือน a q ได้ป้อนคำสั่งแล้ว

หากตัวคั่นปิดของ RE หรือสตริงการแทนที่ (เช่น '/') ใน g, G,
s, v,หรือ V คำสั่งจะเป็นอักขระตัวสุดท้ายก่อน a , ตัวคั่นนั้นสามารถ
ละเว้น ในกรณีนี้ให้เขียนบรรทัดที่อยู่ ตัวอย่างเช่นต่อไปนี้
คู่คำสั่งเทียบเท่า:

วินาที/วินาที1/วินาที2 s/s1/s2/หน้า
กรัม/วินาที1 g/s1/หน้า
?s1 ?s1?

หากป้อนคำสั่งที่ไม่ถูกต้อง ed จะเขียนสตริง:

"?\n"

(ตามด้วยข้อความอธิบาย if ช่วย โหมด ได้รับการเปิดใช้งานผ่านทาง H คำสั่ง) ถึง
เอาต์พุตมาตรฐานและจะดำเนินต่อไปในโหมดคำสั่งโดยที่หมายเลขบรรทัดปัจจุบันไม่เปลี่ยนแปลง

ผนวก คำสั่ง
สรุป:
(.)ก
<ข้อความ>
.

พื้นที่ a คำสั่งต้องอ่านข้อความที่กำหนดและต่อท้ายบรรทัดที่อยู่ ที่
หมายเลขบรรทัดปัจจุบันจะกลายเป็นที่อยู่ของบรรทัดสุดท้ายที่แทรกหรือถ้ามี
ไม่มีบรรทัดที่อยู่ ที่อยู่ 0 จะใช้ได้สำหรับคำสั่งนี้ จะทำให้
ข้อความต่อท้ายที่จะวางไว้ที่จุดเริ่มต้นของบัฟเฟอร์

เปลี่ยนแปลง คำสั่ง
สรุป:
(.,.)ค
<ข้อความ>
.

พื้นที่ c คำสั่งจะลบบรรทัดที่แอดเดรสแล้วยอมรับข้อความอินพุตที่แทนที่เหล่านี้
เส้น; บรรทัดปัจจุบันจะถูกตั้งค่าเป็นที่อยู่ของอินพุตบรรทัดสุดท้าย หรือถ้ามี
ไม่มีในบรรทัดหลังจากลบบรรทัดสุดท้าย ถ้าบรรทัดที่ถูกลบเดิม
ในตอนท้ายของบัฟเฟอร์หมายเลขบรรทัดปัจจุบันจะถูกตั้งค่าเป็นที่อยู่ของใหม่
บรรทัดสุดท้าย; หากไม่มีบรรทัดเหลืออยู่ในบัฟเฟอร์ หมายเลขบรรทัดปัจจุบันจะถูกตั้งค่าเป็นศูนย์
ที่อยู่ 0 จะใช้ได้สำหรับคำสั่งนี้ ให้ตีความราวกับว่าที่อยู่ 1 เป็น
ระบุไว้

ลบ คำสั่ง
สรุป:
(.,.)ด

พื้นที่ d คำสั่งจะลบบรรทัดที่อยู่ออกจากบัฟเฟอร์ ที่อยู่ไลน์
หลังจากลบบรรทัดสุดท้ายจะกลายเป็นหมายเลขบรรทัดปัจจุบัน ถ้าเส้นถูกลบ
เดิมอยู่ที่ส่วนท้ายของบัฟเฟอร์ หมายเลขบรรทัดปัจจุบันจะถูกตั้งค่าเป็น
ที่อยู่ของบรรทัดสุดท้ายใหม่ หากไม่มีบรรทัดเหลืออยู่ในบัฟเฟอร์ หมายเลขบรรทัดปัจจุบัน
จะถูกตั้งค่าเป็นศูนย์

Edit คำสั่ง
สรุป:
e [ไฟล์]

พื้นที่ e คำสั่งจะลบเนื้อหาทั้งหมดของบัฟเฟอร์แล้วอ่านในไฟล์
ตั้งชื่อตามชื่อเส้นทาง ไฟล์. หมายเลขบรรทัดปัจจุบันจะถูกตั้งค่าเป็นที่อยู่ของ
บรรทัดสุดท้ายของบัฟเฟอร์ หากไม่มีการระบุชื่อพาธ ชื่อพาธที่จำได้ในปัจจุบัน if
ใด ๆ ให้ใช้ (ดู f สั่งการ). จำนวนไบต์ที่อ่านเขียนถึง
เอาต์พุตมาตรฐาน เว้นแต่ -s ระบุตัวเลือกในรูปแบบต่อไปนี้:

"%d\n", <จำนวน of ไบต์ อ่าน>

ชื่อ ไฟล์ จะถูกจดจำไว้เพื่อใช้เป็นชื่อพาธเริ่มต้นในภายหลัง e,
E, rและ w คำสั่ง ถ้า ไฟล์ ถูกแทนที่ด้วย '!', ส่วนที่เหลือของบรรทัดจะถูกนำไปที่
เป็นบรรทัดรับคำสั่งเชลล์ที่มีเอาต์พุตให้อ่าน บรรทัดคำสั่งเชลล์ดังกล่าวจะต้องไม่
จำได้ว่าเป็นปัจจุบัน ไฟล์. เครื่องหมายทั้งหมดจะถูกยกเลิกเมื่อเสร็จสิ้น a
ที่ประสบความสำเร็จ e สั่งการ. หากบัฟเฟอร์มีการเปลี่ยนแปลงตั้งแต่ครั้งสุดท้ายที่บัฟเฟอร์ทั้งหมดเป็น
เป็นลายลักษณ์อักษรผู้ใช้จะได้รับคำเตือนตามที่อธิบายไว้ก่อนหน้านี้

Edit ไม่มี การตรวจสอบ คำสั่ง
สรุป:
E [ไฟล์]

พื้นที่ E คำสั่งต้องมีคุณสมบัติและข้อจำกัดทั้งหมดของ e คำสั่งเว้นแต่ว่า
บรรณาธิการจะไม่ตรวจสอบเพื่อดูว่ามีการเปลี่ยนแปลงใด ๆ กับบัฟเฟอร์ตั้งแต่
สุดท้าย w คำสั่ง

ชื่อไฟล์ คำสั่ง
สรุป:
f [ไฟล์]

If ไฟล์ จะได้รับ f คำสั่งจะเปลี่ยนชื่อเส้นทางที่จำปัจจุบันเป็น ไฟล์;
ไม่ว่าจะเปลี่ยนชื่อหรือไม่ก็ตามก็จะเขียน (อาจจะใหม่) ในปัจจุบัน
จำชื่อพาธไปยังเอาต์พุตมาตรฐานในรูปแบบต่อไปนี้:

"%s\n", <ชื่อพา ธ>

หมายเลขบรรทัดปัจจุบันจะไม่เปลี่ยนแปลง

เหตุการณ์ที่ คำสั่ง
สรุป:
(1,$)กรัม/RE/คำสั่ง รายการ

ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร g คำสั่งขั้นแรกให้ทำเครื่องหมายทุกบรรทัดที่ยกเว้นบรรทัด
การสิ้นสุด ตรงกับ RE ที่กำหนด จากนั้นไปตามลำดับจาก
จุดเริ่มต้นของไฟล์ไปยังจุดสิ้นสุดของไฟล์ที่กำหนด คำสั่ง รายการ จะถูกประหารชีวิตเพื่อ
แต่ละบรรทัดที่ทำเครื่องหมายไว้ โดยหมายเลขบรรทัดปัจจุบันตั้งค่าเป็นที่อยู่ของบรรทัดนั้น สายใดก็ได้
แก้ไขโดย คำสั่ง รายการ จะถูกยกเลิกการทำเครื่องหมาย เมื่อ g คำสั่งเสร็จสิ้นปัจจุบัน
หมายเลขบรรทัดจะต้องมีค่าที่กำหนดโดยคำสั่งสุดท้ายใน คำสั่ง รายการ. ถ้า
ไม่มีเส้นที่ตรงกัน หมายเลขบรรทัดปัจจุบันจะไม่ถูกเปลี่ยนแปลง โสด
คำสั่งหรือรายการคำสั่งแรกให้ปรากฏอยู่ในบรรทัดเดียวกับ global
สั่งการ. ทุกบรรทัดของรายการหลายบรรทัด ยกเว้นบรรทัดสุดท้าย ให้ลงท้ายด้วย a
ก่อนสิ้นสุด ; ที่ a, iและ c คำสั่งและที่เกี่ยวข้อง
อนุญาตให้ป้อนข้อมูลได้ ดิ '.' การสิ้นสุดโหมดอินพุตสามารถละเว้นได้หากจะเป็น
บรรทัดสุดท้ายของ คำสั่ง รายการ. ว่างเปล่า คำสั่ง รายการ จะเทียบเท่ากับ p คำสั่ง
การใช้งานของ g, G, v, Vและ ! คำสั่งใน คำสั่ง รายการ ให้ผลลัพธ์ที่ไม่ได้กำหนด
อักขระใดๆ ที่ไม่ใช่ หรือ ใช้แทน a . ได้ ที่จะกำหนดเขต
ที่นั่น. ภายใน RE ตัวคั่น RE สามารถใช้เป็นอักขระตามตัวอักษรได้หากเป็น
นำหน้าด้วย .

อินเตอร์แอคที เหตุการณ์ที่ คำสั่ง
สรุป:
(1,$)กรัม/RE/

ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร G คำสั่งขั้นแรกให้ทำเครื่องหมายทุกบรรทัดที่ยกเว้นบรรทัด
การสิ้นสุด ตรงกับ RE ที่กำหนด จากนั้นสำหรับทุกบรรทัดนั้นบรรทัดนั้นจะต้อง
ให้เขียนหมายเลขบรรทัดปัจจุบันเป็นที่อยู่ของบรรทัดนั้นและอันใดอันหนึ่ง
คำสั่ง (นอกเหนือจากคำสั่ง . อย่างใดอย่างหนึ่ง a, c, i, g, G, vและ V คำสั่ง) ให้อ่านและ
ดำเนินการ อา จะทำหน้าที่เป็นคำสั่งว่าง (ทำให้ไม่มีการดำเนินการกับ
บรรทัดปัจจุบัน); หนึ่ง '&' จะทำให้เกิดการดำเนินการอีกครั้งของคำสั่งที่ไม่เป็นค่าว่างล่าสุด
ดำเนินการภายในการร้องขอปัจจุบันของ G. โปรดทราบว่าคำสั่งที่ป้อนเป็นส่วนหนึ่งของ
การดำเนินการของ G คำสั่งสามารถระบุและส่งผลต่อบรรทัดใดก็ได้ในบัฟเฟอร์ สายใดก็ได้
แก้ไขโดยคำสั่งจะไม่มีการทำเครื่องหมาย ค่าสุดท้ายของหมายเลขบรรทัดปัจจุบัน
จะเป็นค่าที่กำหนดโดยคำสั่งสุดท้ายที่ดำเนินการสำเร็จ (โปรดทราบว่าสุดท้าย
คำสั่งที่ดำเนินการสำเร็จจะเป็น G สั่งตัวเองถ้าคำสั่งล้มเหลวหรือ null
คำสั่งที่ระบุ) หากไม่มีบรรทัดที่ตรงกัน หมายเลขบรรทัดปัจจุบันจะต้องไม่
จะมีการเปลี่ยนแปลง ดิ G คำสั่งสามารถยุติได้ด้วยสัญญาณ SIGINT อักขระใดๆ ที่ไม่ใช่
หรือ ใช้แทน a . ได้ เพื่อกำหนดเขต RE และ the
ทดแทน ภายใน RE ตัวคั่น RE สามารถใช้เป็นอักขระตามตัวอักษร if
มันนำหน้าด้วย a .

การช่วยเหลือ คำสั่ง
สรุป:
h

พื้นที่ h คำสั่งต้องเขียนข้อความสั้น ๆ ไปยังเอาต์พุตมาตรฐานที่อธิบายเหตุผลของ
อันล่าสุด '?' การแจ้งเตือน หมายเลขบรรทัดปัจจุบันจะไม่เปลี่ยนแปลง

โหมดช่วยเหลือ คำสั่ง
สรุป:
H

พื้นที่ H คำสั่งจะทำให้ ed เพื่อเข้าสู่โหมดที่ข้อความช่วยเหลือ (ดู h คำสั่ง)
จะถูกเขียนลงในเอาต์พุตมาตรฐานสำหรับทั้งหมดต่อไป '?' การแจ้งเตือน ดิ H คำสั่ง
สลับกันเปิดและปิดโหมดนี้; มันปิดในตอนแรก หากโหมดช่วยเหลือคือ
ถูกเปิดขึ้น the H คำสั่งยังอธิบายก่อนหน้า '?' การแจ้งเตือนหากมี
หนึ่ง. หมายเลขบรรทัดปัจจุบันจะไม่เปลี่ยนแปลง

สิ่งที่ใส่เข้าไป คำสั่ง
สรุป:
(.)ผม
<ข้อความ>
.

พื้นที่ i คำสั่งจะแทรกข้อความที่กำหนดก่อนบรรทัดที่อยู่; บรรทัดปัจจุบันคือ
ตั้งค่าเป็นบรรทัดที่แทรกสุดท้าย หรือหากไม่มี จะเป็นบรรทัดที่แอดเดรส คำสั่งนี้
แตกต่างจาก a คำสั่งเฉพาะในตำแหน่งของข้อความที่ป้อน ที่อยู่ 0 จะเป็น
ถูกต้องสำหรับคำสั่งนี้ ให้ตีความเหมือนกับว่าได้ระบุที่อยู่ 1

ร่วมเป็นผู้ขายกับเราที่ คำสั่ง
สรุป:
(.,.+1)ญ

พื้นที่ j คำสั่งให้เชื่อมกับเส้นต่อเนื่องกันโดยเอาคำสั่งที่เหมาะสมออก
ตัวอักษร หากระบุที่อยู่เพียงแห่งเดียว คำสั่งนี้จะไม่ทำอะไรเลย ถ้าเส้นคือ
เข้าร่วม หมายเลขบรรทัดปัจจุบันจะถูกตั้งค่าเป็นที่อยู่ของบรรทัดที่เข้าร่วม มิฉะนั้น,
หมายเลขบรรทัดปัจจุบันจะไม่เปลี่ยนแปลง

ทำเครื่องหมาย คำสั่ง
สรุป:
(.)คx

พื้นที่ k คำสั่งให้ทำเครื่องหมายบรรทัดที่อยู่ด้วยชื่อ xซึ่งแอปพลิเคชันจะ
ตรวจสอบให้แน่ใจว่าเป็นอักษรตัวพิมพ์เล็กจากชุดอักขระแบบพกพา ที่อยู่ "เอ็กซ์" แล้วจะ
อ้างถึงบรรทัดนี้ หมายเลขบรรทัดปัจจุบันจะไม่เปลี่ยนแปลง

รายการ คำสั่ง
สรุป:
(.,.)ล

พื้นที่ l คำสั่งจะต้องเขียนไปยังบรรทัดที่อยู่บนเอาต์พุตมาตรฐานในสายตาที่ชัดเจน
รูปร่าง. อักขระที่ระบุไว้ในปริมาณคำจำกัดความพื้นฐานของ POSIX.1-2008 ตาราง 5-1,
หนี ลำดับ และ ที่เกี่ยวข้อง สถานะ ('\\', '\NS', '\NS', '\NS', '\NS', '\NS', '\วี') จะ
เขียนเป็นลำดับการหลบหนีที่สอดคล้องกัน ที่ '\NS' ในตารางนั้นใช้ไม่ได้
อักขระที่ไม่สามารถพิมพ์ได้ซึ่งไม่ได้อยู่ในตารางให้เขียนเป็นเลขฐานแปดสามหลักหนึ่งตัว
(มีคำนำหน้า อักขระ) สำหรับแต่ละไบต์ในอักขระ (สำคัญที่สุด
ไบต์ก่อน)

เส้นยาวให้พับโดยมีจุดพับระบุโดย นำหน้าด้วย
; ไม่ได้ระบุความยาวในการพับ แต่ควรมีความเหมาะสม
สำหรับอุปกรณ์ส่งออก จุดสิ้นสุดของแต่ละบรรทัดให้ทำเครื่องหมาย a '$'และ '$' อักขระ
ภายในข้อความให้เขียนนำหน้า . หนึ่ง l คำสั่งสามารถ
ต่อท้ายคำสั่งอื่นใดนอกจาก e, E, f, q, Q, r, w,หรือ !. สายปัจจุบัน
ให้กำหนดเลขที่อยู่บรรทัดสุดท้ายที่เขียนไว้

ย้าย คำสั่ง
สรุป:
(.,.)มที่อยู่

พื้นที่ m คำสั่งจะย้ายตำแหน่งบรรทัดที่อยู่หลังจากบรรทัดที่จ่าหน้าโดย ที่อยู่.
ที่อยู่ 0 จะใช้ได้สำหรับ ที่อยู่ และทำให้บรรทัดที่อยู่ถูกย้ายไปที่
จุดเริ่มต้นของบัฟเฟอร์ มันจะเป็นข้อผิดพลาดหากที่อยู่ ที่อยู่ อยู่ในช่วงของ
ย้ายเส้น หมายเลขบรรทัดปัจจุบันจะถูกตั้งค่าเป็นที่อยู่ของบรรทัดสุดท้ายที่ย้าย

จำนวน คำสั่ง
สรุป:
(.,.)น

พื้นที่ n คำสั่งจะต้องเขียนไปยังบรรทัดที่แอดเดรสมาตรฐานไปยังเอาต์พุตมาตรฐาน นำหน้าแต่ละบรรทัดโดย
หมายเลขบรรทัดและ a ; หมายเลขบรรทัดปัจจุบันจะถูกตั้งค่าเป็นที่อยู่ของ
บรรทัดสุดท้ายที่เขียน ดิ n คำสั่งต่อท้ายคำสั่งใด ๆ นอกเหนือจาก e, E, f, q, Q,
r, w,หรือ !.

พิมพ์ คำสั่ง
สรุป:
(.,.)พ

พื้นที่ p คำสั่งจะต้องเขียนไปยังบรรทัดที่แอดเดรสมาตรฐาน หมายเลขบรรทัดปัจจุบัน
จะถูกกำหนดเป็นที่อยู่ของบรรทัดสุดท้ายที่เขียนไว้ ดิ p คำสั่งสามารถผนวกเข้ากับ any
คำสั่งอื่นที่ไม่ใช่ e, E, f, q, Q, r, w,หรือ !.

รวดเร็ว คำสั่ง
สรุป:
P

พื้นที่ P คำสั่งจะทำให้ ed เพื่อแจ้งด้วย an ('*') (หรือ เชือกถ้า -หน้า is
ที่ระบุ) สำหรับคำสั่งที่ตามมาทั้งหมด ดิ P คำสั่งอื่นจะเปลี่ยนโหมดนี้
เปิดและปิด; มันจะเริ่มต้นถ้า -หน้า ระบุตัวเลือก; มิฉะนั้น ปิด ดิ
หมายเลขบรรทัดปัจจุบันจะไม่เปลี่ยนแปลง

เลิก คำสั่ง
สรุป:
q

พื้นที่ q คำสั่งจะทำให้ ed ที่จะออก หากบัฟเฟอร์มีการเปลี่ยนแปลงตั้งแต่ครั้งสุดท้ายที่
มีการเขียนบัฟเฟอร์ทั้งหมด ผู้ใช้จะได้รับคำเตือน ตามที่อธิบายไว้ก่อนหน้านี้

เลิก ไม่มี การตรวจสอบ คำสั่ง
สรุป:
Q

พื้นที่ Q คำสั่งจะทำให้ ed ออกโดยไม่ตรวจสอบว่ามีการเปลี่ยนแปลงใน
บัฟเฟอร์ตั้งแต่ครั้งล่าสุด w คำสั่ง

อ่าน คำสั่ง
สรุป:
($)ร [ไฟล์]

พื้นที่ r คำสั่งจะอ่านในไฟล์ที่ตั้งชื่อตามชื่อพาธ ไฟล์ และต่อท้าย
แอดเดรสไลน์. ถ้าไม่ ไฟล์ ให้อาร์กิวเมนต์ ชื่อพาธที่จำได้ในปัจจุบัน ถ้ามี
จะใช้ (ดู e และ f คำสั่ง) ชื่อเส้นทางที่จำได้ในปัจจุบันจะต้องไม่เป็น
เปลี่ยนเว้นแต่จะไม่มีการจำชื่อพาธ ที่อยู่ 0 จะใช้ได้สำหรับ r และจะ
ทำให้ไฟล์ถูกอ่านที่จุดเริ่มต้นของบัฟเฟอร์ หากการอ่านสำเร็จและ
-s ไม่ได้ระบุจำนวนไบต์ที่อ่านจะถูกเขียนไปยังเอาต์พุตมาตรฐานใน
รูปแบบดังต่อไปนี้:

"%d\n", <จำนวน of ไบต์ อ่าน>

หมายเลขบรรทัดปัจจุบันจะถูกตั้งค่าเป็นที่อยู่ของบรรทัดสุดท้ายที่อ่าน ถ้า ไฟล์ is
แทนที่ด้วย '!'ส่วนที่เหลือของบรรทัดจะถูกนำไปเป็นเชลล์บรรทัดคำสั่งซึ่ง
เอาต์พุตจะถูกอ่าน บรรทัดคำสั่งเชลล์ดังกล่าวจะไม่ถูกจดจำว่าเป็นปัจจุบัน
ชื่อพาธ

แทน คำสั่ง
สรุป:
(.,.)ส/RE/การแทนที่/ธง

พื้นที่ s คำสั่งจะค้นหาแต่ละบรรทัดที่อยู่สำหรับการเกิดขึ้นของ RE และ . ที่ระบุ
แทนที่สตริงที่ตรงกันครั้งแรกหรือทั้งหมด (ไม่ทับซ้อนกัน) ด้วย การแทนที่; ดู
คำอธิบายต่อไปนี้ของ g คำต่อท้าย มันเป็นข้อผิดพลาดหากการแทนที่ล้มเหลวใน
ทุกบรรทัดที่อยู่ อักขระใดๆ ที่ไม่ใช่ หรือ ใช้แทน . ได้
เอ เพื่อกำหนดเขต RE และการเปลี่ยน ภายใน RE ตัวคั่น RE เอง
สามารถใช้เป็นอักขระตามตัวอักษรได้หากนำหน้าด้วย a . สายปัจจุบัน
จะถูกตั้งค่าเป็นที่อยู่ของบรรทัดสุดท้ายที่เกิดการเปลี่ยนตัว

หนึ่ง ('&') ปรากฏใน การแทนที่ จะถูกแทนที่ด้วยการจับคู่สตริง
RE บนบรรทัดปัจจุบัน ความหมายพิเศษของ '&' ในบริบทนี้สามารถระงับได้
โดยนำหน้าด้วย . ลักษณะทั่วไปของตัวละคร '\NS'ที่นี่มี n
เป็นตัวเลข จะถูกแทนที่ด้วยข้อความที่ตรงกับการอ้างอิงกลับที่สอดคล้องกัน
การแสดงออก. หากนิพจน์การอ้างอิงกลับที่ตรงกันไม่ตรงกัน แสดงว่า
อักขระ '\NS' จะถูกแทนที่ด้วยสตริงว่าง เมื่อตัวละคร '%' เป็นเพียง
ตัวละครใน การแทนที่ที่ การแทนที่ ใช้ในคำสั่งทดแทนล่าสุด
จะถูกใช้เป็น การแทนที่ ในคำสั่งทดแทนปัจจุบัน ถ้าไม่มี
คำสั่งแทนที่ก่อนหน้า ใช้ของ '%' ในลักษณะนี้ย่อมเป็นความผิด ดิ '%'
จะสูญเสียความหมายพิเศษไปเมื่ออยู่ในสายอักขระแทนที่มากกว่าหนึ่งตัว
อักขระหรือนำหน้าด้วย a . แต่ละ พบในการสแกน
การแทนที่ ตั้งแต่ต้นจนจบอักขระต่อไปนี้จะสูญเสียความหมายพิเศษไป
(ถ้ามี). ไม่ได้ระบุความหมายพิเศษให้กับอักขระอื่นใดนอกจาก
, '&', '%'หรือตัวเลข

เส้นสามารถแบ่งได้โดยการแทนที่ a เข้าไปในนั้น แอปพลิเคชันจะต้องทำให้มั่นใจ
หนี ใน การแทนที่ โดยนำหน้าด้วย . เช่น
การทดแทนไม่สามารถทำได้โดยเป็นส่วนหนึ่งของ a g or v คำสั่ง รายการ. หมายเลขบรรทัดปัจจุบัน
จะถูกตั้งค่าเป็นที่อยู่ของบรรทัดสุดท้ายที่ทำการเปลี่ยนตัว ถ้าไม่
มีการแทนที่หมายเลขบรรทัดปัจจุบันจะไม่เปลี่ยนแปลง ถ้าเส้นแบ่ง
ถือว่าการเปลี่ยนตัวได้ดำเนินการในแต่ละบรรทัดใหม่สำหรับ
วัตถุประสงค์ในการกำหนดหมายเลขบรรทัดใหม่ในปัจจุบัน การทดแทนจะถือว่าเป็น
ได้รับการดำเนินการแม้ว่าสตริงการแทนที่จะเหมือนกับสตริงที่มัน
แทนที่

แอปพลิเคชันจะต้องตรวจสอบให้แน่ใจว่ามูลค่าของ ธง เป็นศูนย์หรือมากกว่าของ:

นับ ทดแทนสำหรับ นับที่เกิดขึ้นเฉพาะของ RE ที่พบในแต่ละบรรทัดที่อยู่

g ทดแทนทั่วโลกสำหรับอินสแตนซ์ RE ที่ไม่ทับซ้อนกันทั้งหมด แทนที่จะเป็นเพียง
อันแรก ถ้าทั้งสองอย่าง g และ นับ มีการระบุผลลัพธ์ที่ไม่ระบุ

l เขียนไปยังเอาต์พุตมาตรฐานในบรรทัดสุดท้ายที่มีการทดแทน เส้น
ให้เขียนตามแบบที่กำหนดไว้สำหรับ l คำสั่ง

n เขียนไปยังเอาต์พุตมาตรฐานในบรรทัดสุดท้ายที่มีการทดแทน เส้น
ให้เขียนตามแบบที่กำหนดไว้สำหรับ n คำสั่ง

p เขียนไปยังเอาต์พุตมาตรฐานในบรรทัดสุดท้ายที่มีการทดแทน เส้น
ให้เขียนตามแบบที่กำหนดไว้สำหรับ p คำสั่ง

คัดลอก คำสั่ง
สรุป:
(.,.)ทที่อยู่

พื้นที่ t คำสั่งให้เทียบเท่ากับ m คำสั่ง เว้นแต่สำเนาของที่อยู่
เส้นจะถูกวางไว้หลังที่อยู่ ที่อยู่ (ซึ่งสามารถเป็น 0); หมายเลขบรรทัดปัจจุบัน
จะถูกกำหนดเป็นที่อยู่ของบรรทัดสุดท้ายที่เพิ่ม

แก้ คำสั่ง
สรุป:
u

พื้นที่ u คำสั่งจะทำให้ผลของคำสั่งล่าสุดที่แก้ไขอะไรเป็นโมฆะ
ในบัฟเฟอร์คือล่าสุด a, c, d, g, i, j, m, r, s, t, u, v, G,หรือ V คำสั่ง
การเปลี่ยนแปลงทั้งหมดที่ทำกับบัฟเฟอร์โดยa g, G, v,หรือ V คำสั่งสากลจะถูกยกเลิกเป็น
การเปลี่ยนแปลงครั้งเดียว หากไม่มีการเปลี่ยนแปลงใดๆ เกิดขึ้นจากคำสั่งโกลบอล (เช่น with g/อีกครั้ง/p) u
คำสั่งไม่มีผล หมายเลขบรรทัดปัจจุบันจะถูกตั้งค่าเป็นค่าที่มีอยู่
ทันทีก่อนที่คำสั่งจะถูกยกเลิกเริ่มต้น

เหตุการณ์ที่ ไม่ตรงกัน คำสั่ง
สรุป:
(1,$)วี/RE/คำสั่ง รายการ

คำสั่งนี้จะเทียบเท่ากับคำสั่งสากล g เว้นแต่เส้นที่เป็น
ที่ทำเครื่องหมายในขั้นตอนแรกจะเป็นเส้นที่ไม่รวมการสิ้นสุด
ไม่ตรงกับ RE

อินเตอร์แอคที เหตุการณ์ที่ ไม่ตรงกัน คำสั่ง
สรุป:
(1,$)ว/RE/

คำสั่งนี้จะเทียบเท่ากับคำสั่งสากลเชิงโต้ตอบ G ยกเว้นว่าเส้น
ที่ทำเครื่องหมายในขั้นตอนแรกจะเป็นเส้นที่ไม่รวม
สิ้นสุด ไม่ตรงกับ RE

เขียน คำสั่ง
สรุป:
(1,$)ว [ไฟล์]

พื้นที่ w คำสั่งจะเขียนบรรทัดที่แอดเดรสลงในไฟล์ที่ตั้งชื่อตามชื่อพา ธ ไฟล์.
คำสั่งจะสร้างไฟล์หากไม่มีอยู่หรือจะแทนที่เนื้อหาของ
ไฟล์ที่มีอยู่ ชื่อเส้นทางที่จำได้ในปัจจุบันจะไม่เปลี่ยนแปลงเว้นแต่จะมี
จำชื่อพาธไม่ได้ หากไม่มีการระบุชื่อพาธ ชื่อพาธที่จำได้ในปัจจุบัน if
ใด ๆ ให้ใช้ (ดู e และ f คำสั่ง); หมายเลขบรรทัดปัจจุบันจะไม่เปลี่ยนแปลง
ถ้าคำสั่งสำเร็จ จำนวนไบต์ที่เขียนจะถูกเขียนเป็นมาตรฐาน
เอาท์พุต เว้นแต่ -s ระบุตัวเลือกในรูปแบบต่อไปนี้:

"%d\n", <จำนวน of ไบต์ เขียน>

If ไฟล์ เริ่มต้นด้วย '!'ส่วนที่เหลือของบรรทัดจะถูกนำไปเป็นเชลล์บรรทัดคำสั่ง
ซึ่งอินพุตมาตรฐานจะเป็นบรรทัดที่อยู่ บรรทัดคำสั่งเชลล์ดังกล่าวจะต้องไม่
จำได้ว่าเป็นชื่อพาธปัจจุบัน การใช้คำสั่งเขียนนี้ด้วย '!' จะไม่เป็น
ถือเป็น ``สุดท้าย w คำสั่งที่เขียนบัฟเฟอร์ทั้งหมด'' ตามที่อธิบายไว้ก่อนหน้านี้
ดังนั้นสิ่งนี้เพียงอย่างเดียวจะไม่ป้องกันการเตือนผู้ใช้หากมีการพยายาม
ทำลายบัฟเฟอร์ตัวแก้ไขผ่าน the e or q คำสั่ง

Line จำนวน คำสั่ง
สรุป:
-

หมายเลขบรรทัดของบรรทัดที่อยู่จะต้องเขียนลงในเอาต์พุตมาตรฐานดังต่อไปนี้
รูปแบบ:

"%d\n", <เส้น จำนวน>

หมายเลขบรรทัดปัจจุบันจะไม่เปลี่ยนแปลงโดยคำสั่งนี้

เปลือก หนี คำสั่ง
สรุป:
!คำสั่ง

ส่วนที่เหลือของบรรทัดหลัง '!' จะถูกส่งไปยังล่ามคำสั่งให้เป็น
ตีความว่าเป็นบรรทัดคำสั่งเชลล์ ภายในข้อความของบรรทัดคำสั่งเชลล์นั้น the
ตัวละครที่หนีไม่พ้น '%' จะถูกแทนที่ด้วยชื่อเส้นทางที่จำได้ ถ้า '!' ปรากฏ
เป็นอักขระตัวแรกของคำสั่ง ให้แทนที่ด้วยข้อความของตัวก่อนหน้า
คำสั่งเชลล์ดำเนินการผ่าน '!'. ดังนั้น "!!" จะย้ำความเดิม !คำสั่ง. ถ้ามี
ทดแทนของ '%' or '!' ดำเนินการแล้วบรรทัดที่แก้ไขจะต้องเขียนถึง
เอาต์พุตมาตรฐานมาก่อน คำสั่ง ถูกดำเนินการ ดิ ! คำสั่งจะเขียนว่า:

"!\n"

สู่ผลลัพธ์มาตรฐานเมื่อเสร็จสิ้น เว้นแต่ -s มีการระบุตัวเลือก สายปัจจุบัน
จำนวนจะไม่เปลี่ยนแปลง

โมฆะ คำสั่ง
สรุป:
(.+1)

ที่อยู่เพียงอย่างเดียวในบรรทัดจะทำให้มีการเขียนบรรทัดที่อยู่ อา ตามลำพัง
จะเทียบเท่ากับ "+1p". หมายเลขบรรทัดปัจจุบันจะถูกตั้งค่าเป็นที่อยู่ของ
บรรทัดที่เขียน

EXIT สถานภาพ


ค่าทางออกต่อไปนี้จะถูกส่งคืน:

0 เสร็จสิ้นสำเร็จโดยไม่มีข้อผิดพลาดของไฟล์หรือคำสั่ง

>0 เกิดข้อผิดพลาด

ผลกระทบที่เกิด OF ข้อผิดพลาด


เมื่อพบข้อผิดพลาดในสคริปต์อินพุตหรือเมื่อตรวจพบข้อผิดพลาดที่เป็น
ผลที่ตามมาของข้อมูล (ไม่) อยู่ในไฟล์หรือเนื่องจากเงื่อนไขภายนอกเช่น
ข้อผิดพลาดในการอ่านหรือเขียน:

* หากอินพุตมาตรฐานเป็นไฟล์อุปกรณ์ปลายทาง อินพุตทั้งหมดจะถูกล้างและใหม่
คำสั่งอ่าน

* หากอินพุตมาตรฐานเป็นไฟล์ปกติ ed จะสิ้นสุดลงด้วยทางออกที่ไม่เป็นศูนย์
สถานะ

พื้นที่ ดังต่อไปนี้ ส่วน เป็น ข้อมูล.

ใบสมัคร การใช้


เนื่องจากข้อความแสดงข้อผิดพลาดเริ่มต้นนั้นสั้นมาก สคริปต์ที่ชาญฉลาด
นักเขียนเริ่ม ed คำสั่งอินพุตด้วย an H คำสั่ง เพื่อว่าหากมีข้อผิดพลาดประการใดเกิดขึ้นที่
อย่างน้อยก็มีเบาะแสบางอย่างเกี่ยวกับสาเหตุ

ในเวอร์ชันก่อนหน้าของมาตรฐานนี้ ล้าสมัย - ได้อธิบายตัวเลือกไว้ นี่ไม่ใช่
ระบุอีกต่อไป แอปพลิเคชันควรใช้ -s ตัวเลือก. โดยใช้ - เป็น ไฟล์ ตัวถูกดำเนินการตอนนี้
ให้ผลลัพธ์ที่ไม่ระบุรายละเอียด นี้ช่วยให้การใช้งานเพื่อสนับสนุน
พฤติกรรมที่จำเป็นในอดีต

ตัวอย่าง


ไม่

หลักการและเหตุผล


คำอธิบายเบื้องต้นของยูทิลิตี้นี้ดัดแปลงมาจาก SVID มันมีบางส่วน
คุณลักษณะที่ไม่พบในระบบที่ได้รับมาจากเวอร์ชัน 7 หรือ BSD ความแตกต่างบางประการระหว่าง
POSIX และ BSD ed สาธารณูปโภครวมถึงแต่ไม่จำกัดเพียง:

* BSD - ตัวเลือกไม่ระงับ '!' พรอมต์หลังจาก a ! คำสั่ง

* BSD ไม่สนับสนุนความหมายพิเศษของ '%' และ '!' ตัวอักษรภายใน a !
คำสั่ง

* BSD ไม่รองรับ ที่อยู่ ';' และ ','.

* BSD อนุญาตให้ใช้คำสั่ง/คำต่อท้ายคู่ pp, llและอื่นๆ ที่ไม่ได้ระบุไว้ในนี้
ปริมาณของ POSIX.1–2008

* BSD ไม่รองรับ '!' ส่วนอักขระของ e, r,หรือ w คำสั่ง

* ล้มเหลว g คำสั่งใน BSD ตั้งค่าหมายเลขบรรทัดเป็นบรรทัดสุดท้ายที่ค้นหาหากมี
ไม่ตรงกัน.

* BSD ไม่ได้ตั้งค่าเริ่มต้น คำสั่ง รายการ ไป p คำสั่ง

* BSD ไม่รองรับ G, h, H, n,หรือ V คำสั่ง

* บน BSD หากไม่มีข้อความแทรก คำสั่ง insert จะเปลี่ยนบรรทัดปัจจุบันเป็น
บรรทัดอ้างอิง -1; นั่นคือบรรทัดก่อนบรรทัดที่ระบุ

* บน BSD, the ร่วม คำสั่งที่มีเพียงที่อยู่เดียวจะเปลี่ยนบรรทัดปัจจุบันเป็นนั้น
ที่อยู่

* BSD ไม่รองรับ P สั่งการ; นอกจากนี้ ใน BSD ยังมีความหมายเหมือนกันกับ p
คำสั่ง

* BSD ไม่รองรับ แก้ ของคำสั่ง j, m, r, s,หรือ t.

* รุ่น7 ed คำสั่ง Wและ BSD ed คำสั่ง W, wqและ z ไม่ได้อยู่ใน
ปริมาณของ POSIX.1-2008 นี้

พื้นที่ -s เพิ่มตัวเลือกเพื่อให้การทำงานของการลบออก - ตัวเลือกในลักษณะ
เข้ากันได้กับแนวทางไวยากรณ์ยูทิลิตี้

ในข้อเสนอช่วงแรก มีขีดจำกัด {ED_FILE_MAX} ที่อธิบายประวัติศาสตร์
ข้อจำกัดบางอย่าง ed ยูทิลิตี้ในการจัดการไฟล์ขนาดใหญ่ บางส่วนเหล่านี้มี
ปัญหาเกี่ยวกับไฟล์ที่มีขนาดใหญ่กว่า 100000 ไบต์ เป็นข้อจำกัดนี้ที่กระตุ้นให้
ความปรารถนาที่จะรวม a แยก คำสั่งในเล่มนี้ของ POSIX.1-2008 เนื่องจากขีดจำกัดนี้คือ
ลบออก ปริมาณของ POSIX.1-2008 นี้กำหนดให้เอกสารการนำไปใช้งานขนาดไฟล์
ขีดจำกัดที่กำหนดโดย ed ในเอกสารรับรอง ขีดจำกัด {ED_LINE_MAX} ก็เช่นกัน
ลบออก; ดังนั้น ขีดจำกัดสากล {LINE_MAX} จะใช้สำหรับบรรทัดอินพุตและเอาต์พุต

ในลักษณะที่ l คำสั่งเขียนอักขระที่ไม่สามารถพิมพ์ได้มีการเปลี่ยนแปลงเพื่อหลีกเลี่ยง
วิธีการย้อนหลังย้อนหลัง-overstrike บนเทอร์มินัลแสดงผลวิดีโอ โอเวอร์สไตรค์คือ
คลุมเครือเพราะเทอร์มินัลส่วนใหญ่จะแทนที่อักขระโอเวอร์สตรัค ทำให้ l รูป
ไม่เป็นประโยชน์สำหรับจุดประสงค์ในการทำความเข้าใจเนื้อหาของ .อย่างชัดเจน
ไลน์. ประวัติศาสตร์ - การหลบหนีก็คลุมเครือเช่นกัน (สตริง "ก\0011" ได้
แทนบรรทัดที่มีอักขระหกตัวหรือบรรทัดที่มีอักขระสามตัว
'A', ไบต์ที่มีค่าไบนารีเป็น 1 และ 1.) ในรูปแบบที่จำเป็นที่นี่ a
ปรากฏในบรรทัดเขียนว่า "\\" เพื่อให้ผลลัพธ์ชัดเจนอย่างแท้จริง ดิ
วิธีการทำเครื่องหมายปลายเส้นถูกนำมาใช้จาก ex บรรณาธิการและจำเป็นสำหรับทุกๆ
บรรทัดที่ลงท้ายด้วย ตัวอักษร; ที่ '$' ถูกวางไว้บนทุกบรรทัดเพื่อให้จริง '$' at
จุดสิ้นสุดของบรรทัดไม่สามารถตีความผิดได้

เวอร์ชันก่อนหน้าของมาตรฐานนี้อนุญาตให้ใช้งานกับไบต์อื่นที่ไม่ใช่แปด
บิต แต่สิ่งนี้ได้รับการแก้ไขในเวอร์ชันนี้

คำอธิบายวิธีเขียน NUL ถูกลบออก อักขระ NUL ไม่สามารถอยู่ในข้อความ
ไฟล์และปริมาณของ POSIX.1-2008 นี้ไม่ควรกำหนดพฤติกรรมในกรณีของ
ไม่ได้กำหนดอินพุตที่ผิดพลาด

ไม่เหมือนกับยูทิลิตี้การแก้ไขอื่น ๆ ชื่อไฟล์ที่ . ยอมรับ E, e, Rและ r
คำสั่งไม่ใช่รูปแบบ

ข้อเสนอในช่วงต้นระบุว่า -หน้า ตัวเลือกใช้งานได้เฉพาะเมื่อมีการเชื่อมโยงอินพุตมาตรฐาน
ด้วยอุปกรณ์ปลายทาง นี้มีการเปลี่ยนแปลงเพื่อให้สอดคล้องกับการใช้งานในอดีต
จึงทำให้แอปพลิเคชันสามารถสอดแทรกระหว่างผู้ใช้และ ed ประโยชน์

รูปแบบของคำสั่งทดแทนที่ใช้ n คำต่อท้ายถูก จำกัด ในบางประวัติศาสตร์
เอกสารประกอบ (ซึ่งอธิบายอย่างไม่ถูกต้องว่า ``การอ้างอิงย้อนกลับ'') ขีดจำกัดนี้
ถูกละไว้เนื่องจากไม่มีเหตุผลที่ตัวแก้ไขกำลังประมวลผลบรรทัดของ {LINE_MAX}
ความยาวควรมีข้อจำกัดนี้ คำสั่ง ส/x/X/2047 น่าจะทดแทนได้
เหตุการณ์ที่ 2047 ของ 'NS' ในบรรทัด

การใช้คำสั่งการพิมพ์ที่มีส่วนต่อท้ายการพิมพ์ (เช่น pn, lpเป็นต้น) ถูกสร้าง
ไม่ระบุเนื่องจากระบบที่ใช้ BSD อนุญาต ในขณะที่ System V ไม่อนุญาต

ระบบที่ใช้ BSD บางระบบจะออกทันทีเมื่อได้รับ end-of-file หากบรรทัดทั้งหมดอยู่ใน
ไฟล์ถูกลบแล้ว เนื่องจากปริมาณของ POSIX.1-2008 นี้หมายถึง q คำสั่งใน
กรณีนี้ พฤติกรรมดังกล่าวไม่ได้รับอนุญาต

การใช้งานในอดีตบางรายการส่งคืนสถานะการออกเป็นศูนย์แม้ว่าข้อผิดพลาดของคำสั่งจะมี
ที่เกิดขึ้น; ปริมาณนี้ไม่ได้รับอนุญาตจาก POSIX.1-2008

การใช้งานในอดีตบางอย่างมีจุดบกพร่องที่อนุญาตให้ซิงเกิ้ล เป็น
เข้าสู่โหมดอินพุตเป็น . นี้ไม่ได้รับอนุญาตโดย ed
เนื่องจากไม่มีคำอธิบายเกี่ยวกับการหลบหนีของอักขระใด ๆ ในโหมดป้อนข้อมูล
อักขระถูกป้อนลงในบัฟเฟอร์ตรงตามที่พิมพ์ วิธีการทั่วไปของ
เข้าคนเดียว นำหน้าด้วยอักขระอื่นแล้วใช้
คำสั่งแทนที่เพื่อลบอักขระนั้น

เป็นเรื่องยากสำหรับบางโหมดของเทอร์มินัลระบบปฏิบัติการในอดีตบางรุ่น
ไดรเวอร์เพื่อแยกความแตกต่างระหว่างเงื่อนไขการสิ้นสุดไฟล์และการยกเลิกการเชื่อมต่อเทอร์มินัล
POSIX.1‐2008 ไม่ต้องการการใช้งานเพื่อแยกความแตกต่างระหว่างสองสถานการณ์
ซึ่งอนุญาตให้มีการดำเนินการทางประวัติศาสตร์ของ ed ยูทิลิตี้บนแพลตฟอร์มประวัติศาสตร์ถึง
เป็นไปตาม. ขอแนะนำให้ดำเนินการเพื่อแยกความแตกต่างระหว่างทั้งสอง ถ้าเป็นไปได้ และ
ดำเนินการตามความเหมาะสมในการถอดขั้ว

ประวัติศาสตร์ ed ยอมรับที่อยู่ศูนย์สำหรับ a และ r คำสั่งเพื่อแทรกข้อความ
ที่จุดเริ่มต้นของบัฟเฟอร์การแก้ไข เมื่อบัฟเฟอร์ว่างเปล่า คำสั่ง .= กลับเป็นศูนย์
POSIX.1-2008 ต้องสอดคล้องกับการปฏิบัติทางประวัติศาสตร์

เพื่อความสอดคล้องกับ a และ r คำสั่งและการทำงานของผู้ใช้ที่ดีขึ้น the i และ c
คำสั่งยังต้องยอมรับที่อยู่ของ 0 ซึ่งในกรณีนี้0i จะถือว่าเป็น1i และในทำนองเดียวกัน
สำหรับ c คำสั่ง

ทั้งหมดต่อไปนี้เป็นที่อยู่ที่ถูกต้อง:

+++ สามบรรทัดหลังบรรทัดปัจจุบัน

/Belt hold /− หนึ่งบรรทัดก่อนเกิดรูปแบบต่อไป

−2 สองบรรทัดก่อนบรรทัดปัจจุบัน

3 −−−− 2 บรรทัดที่หนึ่ง (สังเกตที่อยู่เชิงลบระดับกลาง)

1 2 3 บรรทัดที่หก

สามารถระบุที่อยู่จำนวนเท่าใดก็ได้ให้กับคำสั่งที่ใช้ที่อยู่ ตัวอย่างเช่น,
"1,2,3,4,5p" พิมพ์บรรทัดที่ 4 และ 5 เพราะสองเป็นจำนวนที่อยู่ที่ถูกต้องมากที่สุด
ได้รับการยอมรับจาก พิมพ์ สั่งการ. นี้ร่วมกับ ตัวคั่น,
อนุญาตให้ผู้ใช้สร้างคำสั่งตามรูปแบบที่สั่งในไฟล์ ตัวอย่างเช่น
คำสั่ง "3;/foo/;+2p" จะแสดงบรรทัดแรกหลังบรรทัดที่ 3 ที่มีรูปแบบ
fooบวกสองบรรทัดถัดไป โปรดทราบว่าที่อยู่ "3;" ยังต้องได้รับการประเมินก่อน
ถูกละทิ้งเพราะต้นตอของการค้นหา "/ฟู/" คำสั่งขึ้นอยู่กับสิ่งนี้

ประวัติศาสตร์ ed ห่วงโซ่ที่อยู่ที่ไม่ได้รับอนุญาต ตามที่กล่าวไว้ข้างต้น ซึ่งประกอบด้วย
หรือ ตัวคั่น; ตัวอย่างเช่น, ",,," or ";;;" ถือว่าผิดพลาด
เพื่อความสอดคล้องของข้อกำหนดที่อยู่ ข้อจำกัดนี้จะถูกลบออก ตารางต่อไปนี้
แสดงรายการแบบฟอร์มที่อยู่บางส่วนที่สามารถทำได้ในขณะนี้:

┌─────────┬────────┬────────┬────────────┬─────────── ─────────────┐
ที่ตั้งAddr1Addr2StatusComment
├─────────┼────────┼────────┼────────────┼─────────── ─────────────┤
│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 ไม่ต้องการหรือห้ามพฤติกรรมนี้

อนาคต ลู่ทาง


ไม่

ใช้ edposix ออนไลน์โดยใช้บริการ onworks.net



โปรแกรมออนไลน์ Linux และ Windows ล่าสุด