大量のファイルの名前を変更して拡張子を削除する方法

大量のファイルの名前を変更して拡張子を削除する方法

以下のファイルの名前を変更する必要があります。このディレクトリには他のファイルもあるため、元の.job-209675ファイル名はそのままにして、ファイル名から始まる部分だけを削除したいです。SOA

例えば、
Before: ./SOA_990377897NW0001_1557340549734.xml.job-2074645
After:./SOA_990377897NW0001_1557340549734.xml

答え1

変数 にfilenameファイル名の 1 つが含まれている場合、 は${filename%.job-*}最後のドットの後のビットを除いた名前になります。

ファイル名をループして、順番にファイル名を変更するには、

for filename in SOA_*.job-*; do
    echo mv -i "$filename" "${filename%.job-*}"
done

echo保護のためにあります。ループを 1 回実行して出力を検査し、echo正しいと思われる場合は を削除する必要があります。-iのオプションにより、mv既存のファイルを上書きする前に確認を求められます。

これは、関連するすべてのファイル(他のものは何もない)がパターンに一致することを前提としていますSOA_*.job-*

関連情報