Karakter Kodlaması Değiştiren Script
5 12 2007 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-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-
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 ![]()




Last Comments