Aşağıdaki, @ tripleee'den gelen cevabın bir düzeltmesidir,
böylece final alanındaki herhangi bir alıntıyı diğer tüm alanlarda olduğu gibi çıkarır .
Neyin düzeltildiğini göstermek için, aşağıda üçlü bir kişinin cevabı ve son olarak ' Z ' alanı çevresinde alıntılar eklenmiş olan OP'nin örnek verilerinde küçük bir değişiklik yapıldı .
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 ' nin etrafına tırnak işaretleri kaldığını görebilirsiniz . Bu, iç alanların nasıl işlendiğinden farklıdır. Örneğin, ' G ' üzerinde tırnak yoktur.
Aşağıdaki komut, son sütunu temizlemek için ikinci bir değiştirme kullanır:
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