
以下のファイルの名前を変更する必要があります。このディレクトリには他のファイルもあるため、元の.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-*
。