次のような長いフォルダのリストがあります。
001_bat_3513
002_mon_3213
003_bat_3515
scd_btt_3540
s52_bat_4513
xx2_bpt_8523
056_bot_3513
058_bat_1513
.
.
このリストから:名前から最初の3つの数字または文字を削除してすべてのフォルダの名前を変更するには?したがって、リストは次のようになります。
bat_3513
mon_3213
bat_3515
btt_3540
bat_4513
bpt_8523
bot_3513
bat_1513
.
.
答え1
シェルがパラメータ拡張をサポートしていると仮定すると、
for f in *_*_*; do mv -i "$f" "${f#*_}"; done
- パラメータ拡張モードは、左から最初の部分文字列を
${f#*_}
削除します。_
またはrename
(prename
)を使用してください。
rename 's/^[^_]*_(.*)/$1/' *_*_*
^[^_]*_
最初から最初の部分文字列と一致し、残りの部分文字_
列(.*)
と一致し、置換のために最初の一致グループにも配置されます。