需要修剪文件名的名称

需要修剪文件名的名称

在此输入图像描述我在 UNIX 目录中有一些文件,它们有一个以 开头的唯一数字,我必须从文件名中删除唯一 ID 后跟“-”,并且需要有常规文件。

示例:32456113-报告.pdf

数据库中所需的文件名:report.pdf

我有各种扩展名的文件名.pdf、.doc、.xls、.txt,但前面的数字相同。

我正在使用 winscp 来测试或查看数据,并且通过将 shell 脚本注册为 Oracle 应用程序中的主机并发程序来运行 shell 脚本。

答案1

不完全确定我明白你想要做什么,但我相信一个简单的 bash 脚本如下

for f in * ; do mv "$f" "$(echo "$f" | cut -d- -f2)"; done

如果你不喜欢echo就废话少说,我可以帮你查一下bash中的字符串规则。

答案2

for f in *; do 
    regular="${f#*-}"
    echo "$f => $regular"
done

此参数扩展 ( ${f#*-}) 从变量值的开头删除以连字符结尾的最短字符串(请参阅手动的)。所以:

$ f=32456113-summary-report.doc
$ echo "$f => ${f#*-}"
32456113-summary-report.doc => summary-report.doc

答案3

您可以使用perl-rename

perl-rename 's/[0-9]*-//' <files>

根据您的操作系统/发行版,该实用程序可能称为rename.为了安全起见,在实际重命名任何文件之前,请使用-n标志perl-rename进行试运行。

相关内容