上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

テキストファイル内容の日本語文字コードをUTF-8に変換するスクリプト

Ubuntu9.04用のGTKツール(GUI版)です。他のバージョンでも正常に動作するかもしれません。

以下のファイルをダウンロード(右クリックして保存)してファイル名をgtk_nkf.shに変えてください。
gtk_nkf.txt

そして、Ubuntuなどの端末でダウンロードしたファイルの存在するディレクトリに移動して、
$ bash ./gtk_nkf.sh
で実行してください。
もしくはダウンロードしたファイルを右クリックして「プロパティ」ー「アクセス権」で
「プログラムとして実行できる」にチェックすれば、
ダブルクリックで「実行する」をクリックすることでも使えるようになります。

gtk_nkf.txtの内容は以下のとおりです。


#!/bin/bash
zenity --info --title="日本語文字コード変換プログラム" --text="次のウィンドウでは日本語文字コードを変換したいファイルを選択してください。"
originalfile=$(zenity --file-selection --title="日本語文字コード変換プログラム" --text="日本語文字コードを変換したいファイルを選択してください。" --multiple --separator=" ")
if [ $? = 1 ]
then
zenity --warning --title="日本語文字コード変換プログラム" --text="問題があるようなので、変換を中止しました。"
exit 0
fi
zenity --question --title="日本語文字コード変換プログラム" --text="日本語文字コードを変換したいファイルは\n\n$(echo $originalfile|tr ' ' '\n')\n\nですね?\n問題が無ければOKを、問題があれば「キャンセル」をクリックしてください。"
if [ $? = 1 ]
then
zenity --warning --title="日本語文字コード変換プログラム" --text="問題があるようなので、変換を中止しました。"
exit 0
fi
fileoption=$(zenity --list --title="日本語文字コード変換プログラム" --radiolist --text="日本語変換語のファイル名をどうするか下から一つ選んでください。" --column="↓チェック" --column="内容" "1" "1.元のファイル名と同じ" "2" "2.元のファイル名の最後に「.UTF-8」を付ける(デフォルト)" "3" "3.元のファイルの最後に「.bak」を付けて変換後のファイルを元のファイル名にする")
if [ $? = 1 ]
then
zenity --warning --title="日本語文字コード変換プログラム" --text="問題があるようなので、変換を中止しました。"
exit 0
fi
if [ ! gtk_nkf_logfile ]
then
touch gtk_nkf_logfile
fi
echo "=========Generated by GTKnkf.sh============" >> gtk_nkf_logfile
date >> gtk_nkf_logfile
if [ a$fileoption = "a1.元のファイル名と同じ" ]
then
tempfile="ZZZZZZZ"
while [ -e $tempfile ]
do
answer=$(zenity --width=10 --entry --entry-text="$tempfile" --title="日本語文字コード変換プログラム" --text="作業ディレクトリ${PWD}に${tempfile}という名前のファイルを作って作業したいのですが、これが存在するので問題です。作業ディレクトリに存在しないファイル名を以下に入力してください")
if [ $? = 1 ]
then
zenity --warning --title="日本語文字コード変換プログラム" --text="問題があるようなので、変換を中止しました。"
exit 0
fi
if [ -z $answer ]
then
zenity --warning --title="日本語文字コード変換プログラム" --text="空白が入力されました。問題があるようなので、変換を中止しました。"
exit 0
fi
tempfile=$answer
done
for a in $originalfile
do
nkf -w $a > $tempfile && rm $a && mv $tempfile $a && echo "$aの文字コードをUTF-8にしました。" >> gtk_nkf_logfile
done
elif [ a$fileoption = "a3.元のファイルの最後に「.bak」を付けて変換後のファイルを元のファイル名にする" ]
then
for a in $originalfile
do
b=${a}.bak
while [ -e ${b} ]
do
answer=$(zenity --width=10 --entry --entry-text="$b" --title="日本語文字コード変換プログラム" --text="${a}を${b}に移したいのですが、${b}が存在しています。存在しないファイル名を以下に入力してください")
if [ $? = 1 ]
then
zenity --warning --title="日本語文字コード変換プログラム" --text="問題があるようなので、変換を中止しました。"
exit 0
fi
b=$answer
done
mv $a ${b} && nkf -w ${b} > ${a} && echo "${a}を${b}に移動し、文字コードをUTF-8にしたものを${a}に保存しました。" >> gtk_nkf_logfile
done
else
for a in $originalfile
do
b=${a}.UTF-8
while [ -e ${b} ]
do
answer=$(zenity --width=10 --entry --entry-text="$b" --title="日本語文字コード変換プログラム" --text="${a}を変換したファイルを${b}に保存したいですが、${b}が存在しています。存在しないファイル名を以下に入力してください")
if [ $? = 1 ]
then
zenity --warning --title="日本語文字コード変換プログラム" --text="問題があるようなので、変換を中止しました。"
exit 0
fi
b=$answer
done
nkf -w $a > ${b} && echo "$aの文字コードをUTF-8にしたものを${b}に保存しました。" >> gtk_nkf_logfile
done
fi
zenity --question --title="日本語文字コード変換プログラム" --text="変換しました。ログがgtk_nkf_logfileに残っています。ログを開くならOKを、開かないならキャンセルをクリックしてください。"
if [ $? = 0 ]
then
gedit --new-window ./gtk_nkf_logfile
fi
exit 0


参考:
鈴木の格安パソコンライフBBS
関連記事

テーマ : UNIX/Linux
ジャンル : コンピュータ

コメントの投稿

管理者にだけ表示を許可する

プロフィール

kiyoshi

Author:kiyoshi
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
since 2011/9/25
現在の閲覧者数:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。