ファイル名の一部としてセミコロンを含むファイルの名前を変更するにはどうすればよいですか?

ファイル名の一部としてセミコロンを含むファイルの名前を変更するにはどうすればよいですか?

拡張子が「XLS; 1」のすべてのファイルの名前を「XLS」に変更しようとしましたが、機能しませんでした。

Windows XPのcygwinで次の方法を試しましたが、うまくいきません。

mv *.XLS;1 *.XLS

mv *.XLS\;1 *.XLS

mv "*.XLS;1" *.XLS

ベストアンサー1

問題はセミコロンのものではなく、2番目の例で問題が解決されました。問題は、Linux / Unixユーティリティ(および拡張Cygwin)がWindowsが理解しているように、このコマンドを「次のすべてのファイルの移動」として扱わないことです.XLS;1.XLS各ファイルを個別に移動する必要があります。

for file in *.XLS\;1; do 
    mv "$file" "${file%;1}"
done

説明:

これにより、終わるすべてのファイルがインポートされ、.XLS;1一度に1つずつ名前付き変数に保存されます$file。各ファイルについて、ファイルをカットして$file現在位置に移動するように指示します。;1$file

注:zshを使用している場合は、次のような優れたユーティリティがありますzmv

zmv '(*).XLS;1" "$1.XLS"

設定によっては、最初に実行する必要がありますautoload zmv(.zshrcにも入力)。

おすすめ記事