Saya memiliki banyak file .xml yang dikodekan dalam ISO-8859-1, dan saya ingin semuanya dalam UTF-8.
Saya menemukan kode untuk mengubahnya secara individual yaitu:
iconv -f ISO-8859-1 -t UTF-8 filename.xml > newfilename.xml
dan itu bekerja dengan baik.
Yang ingin saya ketahui adalah bagaimana menulis skrip shell untuk secara otomatis membersihkan semua file .xml dalam direktori dan kemudian mengganti file lama dengan file yang baru dikonversi, tetapi tetap menggunakan nama file yang sama.
Saya baru mengenal shell scripting, jadi bantuan akan sangat dihargai.
unix
xml
character-encoding
utf-8
Tren
sumber
sumber
sed -i 's/olddec/newdec/g'
Masukkan saja ke dalam for loop sebelum baris iconvJawaban:
Anda dapat melakukan ini di baris perintah dalam bash shell
ini pada dasarnya mengambil semua file xml, menempatkannya melalui Iconv ke filname.xml.1 dan kemudian memindahkan file itu kembali ke nama file asli
melihat ikonv dan lihat apa yang seharusnya (jika Anda menggunakan versi GNU)
opsi -s membungkam peringatan, dan opsi -c menghilangkan karakter yang tidak valid dari output.
sumber
-force
opsi. "Dengan opsi ini, rekod ireversibel atau yang salah dijalankan hingga selesai" . Ini juga dapat bekerja pada banyak file sekaligus.