Alanlarınız virgüllerle tanımlanmış gibi görünüyor. Eğer öyleyse, bunu içinde yapabilirsiniz sed:
sed -i -r 's/",([^,]*)$/,"\1"/' file
Veya, Perl'de:
perl -i -lpe 's/",([^,]*)$/,"\1"/' file
Her iki durumda da, regex sadece virgül, daha sonra 0 veya daha fazla virgül olmayan satır sonuna kadar arar. Parantezler, sonra \1(veya $1perl olarak) başvurabileceğimiz son alanları yakalar . Bu daha sonra çift tırnak içinde kendiliğinden yer değiştirir. -iYerinde dosyasını düzenleme için, değişiklikler orijinal dosyaya yapılır edilir.
Ayrıca awkşunları da kullanabilirsiniz :
awk -F, -vOFS=, '{sub(/"/,"",$(NF-1)); $NF="\""$NF"\""}1;' file
Veya, sürümünüz destekliyorsa:
awk -iinplace -F, -vOFS=, '{sub(/"/,"",$(NF-1)); $NF="\""$NF"\""}1;' file
129.24728"doğru mu yoksa yazım hatası mı?