ต่อไปนี้เป็นเพียงการแก้ไขคำตอบจาก@tripleee
เพื่อที่จะตัดเครื่องหมายคำพูดใด ๆ จากฟิลด์สุดท้ายเช่นเดียวกับฟิลด์อื่นทั้งหมด
เพื่อแสดงสิ่งที่ถูกแก้ไขด้านล่างนี้เป็นคำตอบของtripleeeรวมถึงการปรับเปลี่ยนเล็กน้อยในข้อมูลตัวอย่างของ OP ด้วยการเพิ่มเครื่องหมายคำพูดรอบฟิลด์ ' Z ' สุดท้าย
echo 'A,,C,"D,E,F","G",I,"K,L,M","Z"' | sed -r -e 's/("([^"]*)")?,/\2\t/g'
A C D,E,F G I K,L,M "Z"
คุณจะเห็นว่า ' Z ' มีเครื่องหมายคำพูดล้อมรอบ สิ่งนี้แตกต่างจากวิธีจัดการฟิลด์ภายใน ตัวอย่างเช่น ' G ' ไม่มีเครื่องหมายคำพูดอยู่
คำสั่งต่อไปนี้ใช้ทดแทนครั้งที่สองเพื่อล้างคอลัมน์สุดท้าย:
echo 'A,,C,"D,E,F","G",I,"K,L,M","Z"' | sed -r -e 's/("([^"]*)")?,/\2\t/g' \
-e 's/\t"([^"]*)"$/\t\1/'
A C D,E,F G I K,L,M Z