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

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

次のファイルの名前を変更する必要があります。.job-209675次に始まるファイル名を削除したいのですが、SOAそのディレクトリに別のファイルがあるので、元のファイル名はそのままにしたいと思います。

たとえば、
前:./SOA_990377897NW0001_1557340549734.xml.job-2074645
後:./SOA_990377897NW0001_1557340549734.xml

ベストアンサー1

変数にfilenameファイルの1つの名前が含まれている場合、${filename%.job-*}名前の最後の点の後にビットはありません。

ファイル名を繰り返すには、各ファイルの名前を順番に変更します。

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

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

これは、関連するすべてのファイル(他のファイルを除く)がパターンと一致するとSOA_*.job-*仮定します。

おすすめ記事