Script; parametre olarak verilen dosyanın karakter kodlamasını UTF8 ile ISO-8859-9 arasında değiştirmeyi sağlar. Bir ara film altyazıları ile yaşadığım sorunlar yüzünden yazmıştım. Artık pek de ihtiyaç duymuyorum
Birilerinin işine yararsa ne mutlu.
#!/bin/bash# ADI="Karakter" # TAM ADI="Karakter Kodlaması Dönüştürme Betiği" # YAZAN="Aydın Tarık ZENGİN" # LİSANS="GPL" # #Değişkenleri tanımla IN_CHAR="UTF-8" OUT_CHAR="ISO_8859-9" FILE=$1 #Fonksiyonları tanımla #ISO dan Unikoda dönüştürecek fonksiyon function I2U() { iconv -f $OUT_CHAR -t $IN_CHAR $1 -o $1-utf echo "$1 ($OUT_CHAR) dosyası $1-utf ($IN_CHAR) olarak kaydedildi" } # # Unikoddan ISOya dönüştürecek fonksiyon function U2I() { iconv -t $OUT_CHAR -f $IN_CHAR $1 -o $1-iso echo "$1 ($IN_CHAR) dosyası $1-iso ($OUT_CHAR) olarak kaydedildi" } # #Girilen parametre dizin ise kabul etmeyecek. dosya ise devam edecek if ( test -d "$FILE" ) then echo "Bu betik dizinler üstünde işlem yapamaz. Parametre olarak bir dosya verin" exit elif ( test -f "$FILE" ) then echo "Bu bir dosya. Herşey yolunda" fi #ekranı temizle, menü oluştur clear # echo "Dönüştürmek isteğiniz karakter kodlamasının numarasını girin :" echo "--------------------------------------------" echo "1 : $OUT_CHAR'den $IN_CHAR'e" echo "2 : $IN_CHAR'den $OUT_CHAR'e" #girilen seçeneği secenek değişkenine ata read secenek #case ile secenek değişkeninin değerine göre işlemi gerçekleştirecek fonksiyon çağrılır. case $secenek in 1)I2U $FILE ;; 2)U2I $FILE ;; *) echo "Geçerli bir seçenek girin";; esac exit
Çalışması hakkında da aşağıdaki komut dizisi yeterli açıklamayı sağlayacaktır;
smacker@tux ~/Temporary/temp/Convmv Scriptim $ echo "ışçöğü" > dosya1 smacker@tux ~/Temporary/temp/Convmv Scriptim $ file dosya1 dosya1: UTF-8 Unicode text smacker@tux ~/Temporary/temp/Convmv Scriptim $ ./convert.sh dosya1 Bu bir dosya. Herşey yolunda Dönüştürmek isteğiniz karakter kodlamasının numarasını girin : -------------------------------------------- 1 : ISO_8859-9'den UTF-8'e 2 : UTF-8'den ISO_8859-9'e 2 dosya1 (UTF-8) dosyası dosya1-iso (ISO_8859-9) olarak kaydedildi smacker@tux ~/Temporary/temp/Convmv Scriptim $ file dosya1-iso dosya1-iso: ISO-8859 text smacker@tux ~/Temporary/temp/Convmv Scriptim $ ./convert.sh dosya1-iso Bu bir dosya. Herşey yolunda Dönüştürmek isteğiniz karakter kodlamasının numarasını girin : -------------------------------------------- 1 : ISO_8859-9'den UTF-8'e 2 : UTF-8'den ISO_8859-9'e 1 dosya1-iso (ISO_8859-9) dosyası dosya1-iso-utf (UTF-8) olarak kaydedildi smacker@tux ~/Temporary/temp/Convmv Scriptim $ file dosya1-iso-utf dosya1-iso-utf: UTF-8 Unicode text smacker@tux ~/Temporary/temp/Convmv Scriptim $ cat dosya1 ışçöğü smacker@tux ~/Temporary/temp/Convmv Scriptim $ cat dosya1-iso ������ smacker@tux ~/Temporary/temp/Convmv Scriptim $ cat dosya1-iso-utf ışçöğü
Kabukta UTF kullandığım için ISO olan dosyanın içeriği bozuk görülüyor. Zaten olay da burada


