อะไร#
ตัวอักษรหมายถึงในบรรทัดนี้
/bin/sed -e 's#abc#zzz#g'
อะไร#
ตัวอักษรหมายถึงในบรรทัดนี้
/bin/sed -e 's#abc#zzz#g'
คำตอบ:
มันเป็นตัวคั่นเช่นเดียวกับมันเช่นเดียวกับ"/"
's/abc/zzz/g'
มันหมายถึงการค้นหา "abc" แทนที่ด้วย "zzz" ด้วยค่าสถานะสากลหมายความว่าทำเพื่อค้นหา "abc" ทั้งหมดในบรรทัดไม่ใช่เฉพาะอันแรก
คุณยังสามารถใช้ตัวคั่นทางเลือกสำหรับที่อยู่ของรูปแบบได้ แต่ในกรณีนั้นคุณต้องหลีกเลี่ยงเพื่อให้การตีความถูกต้อง:
sed -r '\#abc#p'
มันเป็นตัวคั่นหรือตัวคั่น หนึ่งที่ใช้บ่อยที่สุดคือ/
ใน
sed 's/old/new/' file
แต่ sed จะใช้อักขระตัวแรกหลังจากคำสั่งเป็นตัวคั่น คุณสามารถใช้ตัวละครที่สะดวกเช่น ...
sed 's%old%new%' file
สิ่งนี้มีประโยชน์มากหากไฟล์นั้นมี/
(หรืออักขระอื่น ๆ ที่กำหนดแบบดั้งเดิม) คุณสามารถเลือกเป็นตัวคั่นบางตัวที่คุณรู้ว่าคุณไม่จำเป็นต้องใส่ในsed
การแสดงออกช่วยให้คุณรอดพ้นจากการที่น่ารำคาญ
สมมติว่าคุณต้องการแทนที่
https://askubuntu.com/questions
กับ
https://askubuntu.com/posts
คุณสามารถใช้
sed 's/https:\/\/askubuntu.com\/questions/https:\/\/askubuntu.com\/posts/' file
แต่ดีกว่าที่จะใช้
sed 's|https://askubuntu.com/questions|https://askubuntu.com/posts|' file
sbabeb
s/a/e/
/
สามารถถูกแทนที่ด้วยอักขระสำรองในบริบทอื่นนอกเหนือจากs
คำสั่ง (ทดแทน) - แต่ในกรณีนั้นจะต้องมีการหลบหนีในครั้งแรกเช่นsed '/foo/d'
(ลบเส้นตรงfoo
) กลายเป็นsed '\#foo#d'