1000個のファイルがあるとしましょう file1.txt
。file1000.txt
数字が10で割られたら、ファイル名を変更する必要があります。
このようにしましたが、最初の文字だけが変わりました。
for f in *.txt; do mv -- "$f" "${f%.txt}.doc"; done
ベストアンサー1
@Henrik supports the community
さんのコメントはとても適切です。また、私はいつも印刷コマンドを実行して、そのコマンドを再確認してください。これは組み込みの「テスト実行」機能を提供します。 もしコマンドが正しく表示された後にスクリプトを再実行して出力をsh
OTOHにパイプすると、コマンドが正しくなくても破損しません。
for f in *0.txt
do
printf 'mv -- %q %q\n' "$f" "${f%.txt}.doc"
done
printf
の指令をより安全に使用することを提案したStéphane Chazelasに感謝します%q
。