如何在 Linux 中通过替换文件中的特定字母来重命名文件

如何在 Linux 中通过替换文件中的特定字母来重命名文件

我使用了一个重命名文件的脚本,例如'回显 webutil.olb | tr [AZ] [az]' 我想将其重命名为网络实用程序. 我如何对我拥有的许多其他文件执行此操作

答案1

Debianrename允许您指定一个 sed 替换模式来应用于文件名以便重命名它们。

答案2

假设文件使用额外的字符串重命名,这可能会有所帮助:

for file in echo*
do
    new="${file#* }"    # strip up to the first space (remove "echo ")
    new="${new% |*}"    # strip the space-pipe and after (remove " | tr ...")
    mv "$file" "$new"
done

例如,这会将名为“echo webutil.olb | tr [AZ] [az]”的文件重命名为“webutil.olb”,并且将适用于其他名称类似的文件。它要求所需名称位于空格和空格后跟竖线之间。

答案3

为了举个例子,tr请保持 webutil.olb 原样。

一般来说,你不能这样做,因为你会丢失有关大小写的信息。例如,文件名“webutil.olb”可能来自将 tr 应用于“WebUtil.olb”或“WEBUTIL.olb”。

相关内容