เป็นไปได้ที่จะทำในหนึ่งซับ?
ฉันมีผลลัพธ์เช่นนี้
"First line" - Description
" Second line" - Description
"Third line" - Description
" Fourth line" - Description
อินพุตนี้สร้างขึ้นโดยอัตโนมัติ
ฉันต้องการแทนที่การเกิดขึ้นครั้งแรกของ"
(เครื่องหมายคำพูด + ช่องว่าง) ด้วย"
(เครื่องหมายคำพูด) สำหรับแต่ละบรรทัด ถ้าฉันใช้การทดแทนทั่วโลกมันก็จะเปลี่ยนทุกอย่างที่เกิดขึ้นline" -
เป็นline"-
ดังนั้นฉันสงสัยว่ามันเป็นไปได้ที่จะใช้สายการบินเดียวที่จะทำให้สำเร็จ
ฉันได้ลองใช้^
แบบนี้
sed -r ':a;N;$!ba;s/(\^\" )/\"/g'
แต่มันไม่ทำงานมันไม่ได้แทนที่อะไรเลย ฉันเหนื่อย
sed -r ':a;N;$!ba;s/(^|\" )/\"/g'
และมันจะแทนที่เหตุการณ์ที่เกิดขึ้นทั้งหมด ฉันเพิ่งเริ่มใช้ sed ดังนั้นฉันไม่รู้จริง ๆ ว่าฉันทำอะไรผิด
ฉันหายไปนี่อะไร
sed
แต่เพื่อความสะดวกในการพกพาและเพื่อหลีกเลี่ยงข้อผิดพลาดที่แปลกจริง ๆ คุณควรวางอาร์กิวเมนต์คำสั่งที่กำหนดหลังจากป้ายกำกับ (ถ้าคุณต้องการเลย) เช่นsed -e ':a' -e 'N;$!ba' -e 'whatever'