Berikut ini hanyalah koreksi terhadap jawaban dari @tripleee
sehingga menghilangkan tanda kutip dari bidang terakhir sama halnya dengan semua bidang lainnya.
Untuk menunjukkan apa yang sedang diperbaiki, di bawah ini adalah jawaban tripleee , ditambah sedikit modifikasi pada contoh data OP dengan kutipan tambahan di sekitar bidang ' Z ' akhir .
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"
Anda dapat melihat bahwa ' Z ' dibiarkan dengan tanda kutip di sekitarnya. Ini berbeda dengan bagaimana bidang dalam ditangani. Misalnya, ' G ' tidak memiliki tanda kutip di atasnya.
Perintah berikut menggunakan subtitusi kedua untuk membersihkan kolom terakhir:
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