ในการแก้ไข
นี้Stéphane Chazelas POSIXify (อีกครั้ง)sedการจัดรูปแบบของฉันโดยการแทรกตัว-eแบ่ง xpression และ-eคำสั่ง xpression อื่น ตอนนี้ฉันอาจจะถามเขาว่าทำไมในความคิดเห็นฉันคิดว่า แต่มันก็มีการแก้ไขหมายเลข 18 ในคำตอบนั้นและเกือบทั้งหมดก่อนหน้านี้แล้วขอบคุณฟรีคล้ายกัน(ถ้าคุณสามารถเห็นความคิดเห็นที่ถูกลบคุณจะรู้ว่าสิ่งที่ ผมหมายถึง) นอกจากนี้ฉันคิดว่าฉันเข้าใกล้พอที่จะเข้าใจว่าทำไมวลีนี้ด้วยวิธีที่อาจมีประโยชน์มากกว่า ดังนั้นนี่คือความหวัง ...
ฉันมักชอบที่จะให้ทั้งหมดของฉันsed -eXpressions ไปหนึ่งถ้าฉันอาจ แต่ฉันยังมีการตั้งค่ามากขึ้นสำหรับการเป็นไปตามสเปคที่ใกล้เท่าที่จะทำได้โดยเฉพาะอย่างยิ่งเมื่อความแตกต่างจะมีจำนวนไม่เกินและ<space> -eแต่ฉันไม่สามารถทำได้ถ้าฉันไม่เข้าใจว่าทำไมฉันควรทำ นี่เป็นบทสรุปสั้น ๆ เกี่ยวกับสถานะปัจจุบันของความเข้าใจของฉัน:
' -e 'แบ่ง portably สามารถยืนอยู่ในสำหรับsedสคริปต์\nแบ่ง ewline ในsedคำสั่งบรรทัดคำสั่ง ... ฉันยอมรับคลุมเครือเกี่ยวกับสาเหตุวงเล็บปีกกาปิดใน
sed{ฟังก์ชั่น}จะต้องนำหน้าด้วยตัว\nแบ่ง ewline ตามที่ระบุไว้ที่นี่:<right-brace>จะนำหน้าด้วย<newline>และสามารถนำหน้าหรือตาม<blank>ตัวอักษร
\nแบ่ง ewline เป็นสิ่งจำเป็นในทำนองเดียวกันต่อไปนี้การใช้งานใด ๆ ...a,b,c,i,r,t, หรือw:
แต่ฉันไม่เข้าใจชัดเจนว่านิยามของ{ฟังก์ชัน}เกี่ยวข้องกับตัว!ดำเนินการที่ไม่ได้อย่างไร การกล่าวถึงเพียงฉันพบของผู้ประกอบการปฏิเสธในรัฐข้อมูลจำเพาะ:
- ฟังก์ชั่นสามารถนำหน้าด้วย
!ตัวละครหนึ่งตัวหรือมากกว่าในกรณีนี้ฟังก์ชั่นจะถูกนำไปใช้ถ้าที่อยู่ไม่ได้เลือกพื้นที่รูปแบบ
นี่หมายถึงการใช้ที่!แสดงถึง{การจัดฟัน}? สิ่งที่$!คำสั่ง - พวกเขาควรจะแยกออกจากกันโดย' -e 'แบ่ง? นี่คือสิ่งที่ได้รับการแก้ไขเมื่อStéphaneเพิ่งแก้ไขคำตอบของฉันล่าสุด
ฉันคิดว่ามันเป็นทั้ง!โอเปอเรเตอร์การปฏิเสธหรือเป็นbคำสั่งฟาร์มปศุสัตว์ที่เขาระบุในการแก้ไขของเขา - หรืออาจเป็นทั้งสองอย่างในคราวเดียว - แต่ฉันไม่รู้และควรจะชอบ ถ้ามันเป็นเพียงbงบไร่แล้วผมเชื่อว่าdจะทำในสถานที่และขจัดความจำเป็นในการที่' -e 'หยุดพัก แต่ฉันอยากจะให้แน่ใจก่อนที่จะ hazarding สามPOSIXifiedคำตอบ คุณช่วยได้ไหม
ฉันมีความเสี่ยงหลังจากทั้งหมดแต่ไม่ได้มีความมั่นใจที่ดีใด ๆ ...
:ส่วน - คุณขับรถกลับบ้านเมื่อหลายเดือนก่อน แต่ผมไม่เข้าใจว่าทำไมที่สองsedคำสั่งเป็นทำนองเดียวกันPOSIXified
sedก็ไม่ชัดเจน ฉันเคยขอคำชี้แจงมาก่อนสองสามครั้งแล้ว แต่ฉันไม่คิดว่ามันจะได้รับการอัพเดท การทดสอบที่ดีคือการลองใช้ชุดเครื่องมือมรดกตกทอด (Solaris one ซึ่งได้มาจากต้นฉบับและ POSIX spec นั้นยึดตาม)
s///ubstitutions จะ spec'd ที่จะยอมรับการผูกมัดกับ; . มันได้รับพร่ามัวรอบคำสั่งที่ต้องคั่นด้วย newline และวิธี-eสามารถยืนในกรณีที่ - อย่างน้อยมันก็ทำเพื่อฉัน ive ยังสะดุดในsedที่ไม่ตีความพวกเขาสวยสลับกันได้ว่า
;ก่อนขึ้นบรรทัดใหม่ - ขึ้นบรรทัดใหม่ได้ดี สุจริตคุณสามารถทำได้โดยไม่ต้อง-eและทุกอย่างสิ้นเชิงและเพียงแค่เขียนไฟล์เช่น#!/bin/sedกับแต่ละคำสั่งบนบรรทัดใหม่ - ;หรือผู้ที่ไม่จำเป็นต้องมีตัวคั่นเช่นคั่นแทนด้วย คนที่ไม่จำเป็นต้องมีการขึ้นบรรทัดใหม่มักจะมีคนที่ใช้การป้อนข้อมูลโดยพลการ - :ชื่อฉลากและคำสั่งที่อ้างถึงพวกเขาเช่นbหรือtหรือปิด}curlies สำหรับฟังก์ชั่นหรือrอี๊ดและwพระราชพิธีซึ่งใช้ชื่อไฟล์ args พวกเขาทุกคนต้อง portably \nจะตามมาด้วย
b;n;:bคุณจะแยกไปยังป้ายกำกับที่เรียกว่า";n;:b"ในประวัติและ POSIX seds (และ GNU sed ไม่ได้อยู่ในเรื่องนั้น)