何千ものファイル名
t_00xx_000xxx.png
で00xx_000xxx.png
始まるファイルの名前を変更したいと思いますt_
。t_00xx_000xxx.png
00xx_000xxx_t.png
したがって、一部のファイルでは、プレフィックスがサフィックスとして使用されます。単一のコマンドでこれを実行できますか?
私はSUSE SLES12 SP2を実行しています。
ベストアンサー1
xが任意の単一文字である可能性があるファイル名パターンが与えられると、t_00xx_000xxx.png
次のループは?
ワイルドカードを使用して変数文字を置き換えます。このループはt_
.で始まり、終了するファイルのみを選択します.png
。パラメータ拡張を使用して先行部分を削除し、必要な部分文字列を抽出して目的の位置にt_
移動します。_t
for f in t_00??_000???.png
do
echo mv -- "$f" "${f:2:11}_t.png"
done
一部の仮想ファイル名では、サンプル出力は次のようになります。
mv t_0011_000111.png 0011_000111_t.png
mv t_0012_000345.png 0012_000345_t.png
mv t_00xx_000xxx.png 00xx_000xxx_t.png
echo
結果が正しい場合は、セクションを削除してください。