ファイル名を大文字から小文字に変更する

ファイル名を大文字から小文字に変更する

もっと詳しく説明する必要があります。このコマンドは実際にBBS FTN投擲者のためのものです。これらのコマンドを含む構成ファイルでは、特定の宣言のみが許可されます。ここにいくつかの例があります。

exec "/home/imp/imp/poll.sh" *.su? *.mo? *.tu? *.we? *th? *.fr? *.sa? *.pkt
flag toss!.now [0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z].???
exec "/home/imp/imp/poll.sh /home/imp/hpt/secure" /home/imp/hpt/secure/*.[STFWMstfWM][ouaherOUAHER][0-9A-ZA-a] *.[pP][kK][tT]

これが私がその構文([0-9a-z](例:))を使用したい理由です。問題は、メールプログラムが小文字のファイル名を探しているが、大文字のファイル名のみが存在することです。

次の構文を使用して、ファイルを大文字から小文字に変換しようとします。

mv /home/imp/hpt/outbound/[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z].[STFWMfWM][OUAHER][0-9] /home/imp/hpt/outbound/[0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z].[stfwm][ouaher][0-9a-za-a]

私の構文が間違っていると思います。

以下は、名前を変更するファイル名の例です。

0000FE70.FR0

すべての助けに感謝します。ありがとうございます。

ベストアンサー1

あるタイプの文字を別のタイプの文字に変更するには、を使用しますtr

for f in *; do
    test -f "$f" && echo mv "$f" "$( tr '[:upper:]' '[:lower:]' <<<"$f" )"
done

このスクリプトは、現在のディレクトリのすべてのファイル名をすべて小文字に変更します。ディレクトリをスキップします。echo要件を満たしていることを確認したら、削除してください。標準のASCIIファイル名のみがある場合(注:代わりに)とを[:upper:]それぞれ[:lower:]に変更できますA-Za-zA-Z[A-Z]

または、Bashの組み込み変数の置換を大文字から小文字として使用します。

for f in *; do
    test -f "$f" && echo mv "$f" "${f,,}"
done

おすすめ記事