คำสั่ง sed ของฉันคือ
sed '/(.*:)/d' <<< 'abcd:bcde:cdeaf'
มันจะต้องกลับมา
bcde:cdeaf
(เช่น) ตัวละครทั้งหมดก่อนที่เครื่องหมายโคลอนแรกในบรรทัดและเครื่องหมายโคลอนต้องถูกลบออก
แต่นี่ไม่ได้เป็นการลบอะไรเลย
ความสับสนของฉันส่วนใหญ่เกิดจาก
1) parens สำหรับการจับคู่รูปแบบจำเป็นต้องได้รับการยกเว้นภายใน sed regex-es หรือไม่?
2) ในกรณีใดกรณีหนึ่ง (ด้วยการหลบหนี / ไม่ต้องใช้การหลบหลีก) มันใช้งานไม่ได้ ฉันเหนื่อย,
sed -E '/\\(.*:\\)/d' <<< 'abcd:bcde'
printf "%s\n" "${line#*:}"...
while read lineที่ได้รับ$lineอาจจะsedควรได้รับการแนะนำ
sed 's/[^:]*://'คุณต้องการ และคุณไม่ได้dลบบรรทัดอินพุตโดยวิธีคุณกำลังแก้ไขด้วยs///คำสั่ง ubstitution คุณต้องแทนที่บิตแรกไม่ใช่โคลอนบิตและโคลอนที่ตามหลังโดยไม่มีอะไรเลย