我有以下文件:
boxScoreBaseball.html.php
boxScoreBasketball.html.php
boxScoreBowling.html.php
boxScoreCheer.html.php
boxScoreCrew.html.php
boxScoreCrossCountry.html.php
boxScoreEquestrian.html.php
boxScoreFieldHockey.html.php
boxScoreFootball.html.php
boxScoreGolf.html.php
boxScoreGymnastics.html.php
boxScoreHockey.html.php
boxScoreLacrosse.html.php
boxScoreRugby.html.php
boxScoreSkiing.html.php
boxScoreSoccer.html.php
boxScoreSoftball.html.php
boxScoreSwimming.html.php
boxScoreTennis.html.php
boxScoreTrack.html.php
boxScoreVolleyball.html.php
boxScoreWaterPolo.html.php
boxScoreWrestling.html.php
我想boxScore
从每个文件中取出部分,因此,例如,boxScoreBaseball.html.php
将变成baseball.html.php
。最简单的方法是什么?
答案1
可能只适用于 Bash:
for i in boxScore*; do mv $i ${i#boxScore}; done
我总是使用这个参考来进行一些快速而肮脏的 bash 操作:http://aurelio.net/shell/canivete/en/(见第 4 节)。
答案2
答案3
您不能直接重命名所有内容,必须使用 bash 脚本。也许这些链接对您有用:
答案4
运行这个小的 shell 脚本:
for file in *; do echo "${file:8}" | sed -e 's/^\([A-Z]\)\(.*\)/\l\1\2/' | xargs mv "$file"; done
我们遍历当前目录中的每个文件。首先,我们回显不包含前 8 个字符的文件名。然后我们使用sed
将第一个字符转换为小写。sed
搜索表达式表示“行首,组 1:大写字母,组 2:其余”,替换表达式表示“匹配组 1 的小写,然后附加组 2”。最后一部分只是将旧文件移动到转换后的文件名。