それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

WindowsのSJISのファイルがUTF-8で化けるので一気に置換するスクリプト

windowsから来たZipファイルを展開したら

文字コードがグチャグチャーって化けるのでした。辛い。

文字コードを修正するスクリプトをぱぱっと書いた

conv_file_name.sh -v -n path/to/*.pdf
conv_file_name.sh -v  path/to/*.pdf

nkf があれば何とか出来るんだけけれど結構面倒くさいのでファイル名を変化するシェルコマンド書いた。

あれこれ冗長なのと細かいエラー処理をしてないのであらゆる場面に対応できるかと言われれば多分出来ないけど。

とりあえず、これでいいや

conv_file_name.sh

#!/usr/bin/env bash

function mv_conv(){
  src=$1
  dst="$( echo -n $src | nkf -w )"

  if [[ "$src" == "$dst" ]] ; then
    return
  fi
  if [[ $3 == 1 ]] ; then
    echo "'$src'" "'$dst'"
  fi
  if [[ $2 != 1 ]] ; then
    mv  "$src" "$dst"
  fi
}

declare FILES;
declare VERBOSE;
declare DRY_RUN;

for arg  ; do
  case $arg in
    '-n')
      DRY_RUN=1
      ;;
    '-v')
      VERBOSE=1
      ;;
    *)
      FILES+=("$arg")
  esac
done

for i in "${!FILES[@]}"; do
  file=${FILES[$i]}
  mv_conv "$file" "$DRY_RUN" "$VERBOSE"
done