ในการแก้ไข
นี้Stéphane Chazelas POSIXify (อีกครั้ง)sed
การจัดรูปแบบของฉันโดยการแทรกตัว-e
แบ่ง xpression และ-e
คำสั่ง xpression อื่น ตอนนี้ฉันอาจจะถามเขาว่าทำไมในความคิดเห็นฉันคิดว่า แต่มันก็มีการแก้ไขหมายเลข 18 ในคำตอบนั้นและเกือบทั้งหมดก่อนหน้านี้แล้วขอบคุณฟรีคล้ายกัน(ถ้าคุณสามารถเห็นความคิดเห็นที่ถูกลบคุณจะรู้ว่าสิ่งที่ ผมหมายถึง) นอกจากนี้ฉันคิดว่าฉันเข้าใกล้พอที่จะเข้าใจว่าทำไมวลีนี้ด้วยวิธีที่อาจมีประโยชน์มากกว่า ดังนั้นนี่คือความหวัง ...
ฉันมักชอบที่จะให้ทั้งหมดของฉันsed
-e
Xpressions ไปหนึ่งถ้าฉันอาจ แต่ฉันยังมีการตั้งค่ามากขึ้นสำหรับการเป็นไปตามสเปคที่ใกล้เท่าที่จะทำได้โดยเฉพาะอย่างยิ่งเมื่อความแตกต่างจะมีจำนวนไม่เกินและ<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 ไม่ได้อยู่ในเรื่องนั้น)