#!/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