ディレクトリを移動してファイルの名前を変更するスクリプトを作成しようとしています。私はファイル名とファイル拡張子を別々に抽出できるようにしたいと思いますが、ファイルパスにスペースやスウェーデン語のUTF8文字(ÅÄÖなど)が含まれていると、壊れます。bashでUTF文字を操作する
私はここでファイル名+拡張子を抽出するために以下のスニペットを見つけましたが、UTF-charsや空白のないパスで動作しているのを見ているので、私は適切にエスケープしていないと思っています変数。
おそらく私は何か間違っています。 UTF8の文字と空白を持つパスでこの作業をするために私が何をできるかについてのアイデアはありますか?
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
FULLPATH="$file"
FILENAME=${FULLPATH##*/}
FILEEXTENSION=${FILENAME##*.}
BASEDIRECTORY=${FULLPATH%$FILENAME}
#Log the vars for debugging
echo "$FULLPATH" >> ~/Desktop/log.txt
echo "$FILENAME" >> ~/Desktop/log.txt
echo "$FILEEXTENSION" >> ~/Desktop/log.txt
echo "$BASEDIRECTORY" >> ~/Desktop/log.txt
done
あなたが投稿スニペットは結構ですが、 '$ NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'は、複数のパス、引用されたそれらのいくつかを含めることができる方法はありません。この変数を避ける方法はありますか? – tripleee
...まあ、もちろん不可能ではありませんが、おそらくあなたの問題の原因です。 – tripleee