如何在mac中的多个文件名中追加相同的字符串?

Viv*_*vam 3 unix macos command-line-tool

我只需要将字符串"eng"附加到同一目录中的许多文件名,而不更改其在MAC TERMINAL中的扩展名.我搜索了很长时间,我发现mv命令一次重命名文件.但我不知道如何实现我的方案.任何ony可以指导我吗?

谢谢

小智 19

如果您有一个包含以下文件的目录:

a.ext
b
c.long.sh
Run Code Online (Sandbox Code Playgroud)

并且您想将它们重命名为:

aeng.ext
beng
c.longeng.sh
Run Code Online (Sandbox Code Playgroud)

Mac终端(bash)中的以下"oneliner"应该这样做:

for i in *; do name="${i%.*}"; mv "$i" "${name}eng${i#$name}"; done
Run Code Online (Sandbox Code Playgroud)

解释:

  • for i in *; do - 遍历所有文件名
  • name="${i%.*}" - 在扩展名之前提取名称部分(剥离最后一个点之后的所有内容)
  • mv - 处理重命名
  • ${name}eng - 添加eng名称
  • ${i#$name} - 获取扩展名(这将从原始文件名中删除名称部分)

注意:如果要预览它将执行的操作,但实际上不执行重命名,请在"mv"之前插入"echo".这会将语句打印到屏幕而不是执行重命名.