ファイル拡張子のみ変更[重複]

ファイル拡張子のみ変更[重複]

ファイルone.PDFをに変更するための簡単なシェルスクリプトを作成していますone.pdf。このファイルを Task1 というフォルダに保存します。

私のスクリプトはTask1と同じディレクトリにあります。Shell1.sh実行すると、Task1はTask1.pdfになりますが、one.PDFのファイルは変わりません。反対が必要ですが、私が試していることは何も機能しないようです。構文エラー、忙しいリソースのためにmvが移動されない、またはディレクトリ名を変更することの間で交互に表示されます。

誰かが私が間違っていることを教えてもらえますか?

#!/bin/bash
#shebang for bourne shell execution
echo "Hello this is task 1"
 #Initial prompt used for testing to see if script ran
#/rename .* .pdf *.pdf // doesnt work

#loop to iterate through each file in current directory and rename
for file in Task1;
do
        mv "$file" "${file%.PDF}.pdf"
done

ベストアンサー1

globbing を使用してファイル名を取得します。

for file in Task1/*; do mv ...; done

正確にするには、次のファイルのみを使用してください.PDF

for file in Task1/*.PDF; do mv ...; done

より正確には、ディレクトリではなくファイルを扱っていることを確認してください。

for file in Task1/*.PDF; do [ -f "$file" ] && mv ...; done

ちなみに、パラメータ拡張パターンは大丈夫です。

おすすめ記事