mht ファイルのファイル名を変更するためのスクリプトがありますが、ディレクトリとサブディレクトリをトラバースしません。ローカル フォーラムで質問したところ、これが解決策であるという回答が得られました。
find . -type f -name "*.mhtml" -o -type f -name "*.mht" | xargs -I item sh -c '{ echo item; echo item | sed "s/[:?|]//g"; }' | xargs -n2 mv
しかし、それはエラーを生成します。私の実験のいくつかで、sh -c
ファイル名がスペースで分割され、これがエラーを生成することがわかりました。どうすればこれを修正できますか?
#!/bin/bash
# renames.sh
# basic file renamer
for i in . *.mht
do
j=`echo $i | sed 's/|/ /g' | sed 's/:/ /g' | sed 's/?//g' | sed 's/"//g'`
mv "$i" "$j"
done