相关疑难解决方法(0)

所有重命名是什么:预命名、重命名、文件重命名?

在我的 Debian 系统(嗯,我的 LMDE 系统,但足够接近)上,我至少有 3 个不同的rename程序:

  • /usr/local/bin/rename:这是一个 Perl 脚本,由 Tom Christiansen 编写。奇怪的是,我似乎无法找到安装它的软件包:

    $ dpkg -S /usr/local/bin/rename 
    dpkg-query: no path found matching pattern /usr/local/bin/rename
    
    Run Code Online (Sandbox Code Playgroud)
  • /usr/bin/prename:另一个 perl 脚本,由 Robin Barker 编写,这是perl包的一部分:

    $ dpkg -S /usr/bin/prename
    perl: /usr/bin/prename
    
    Run Code Online (Sandbox Code Playgroud)
  • /usr/bin/file-rename:又一个 Perl 脚本,没有明确的作者信息,但提到了 Larry(大概是 Wall)和 Robin(大概是 Barker)。这个是由rename包安装的,也被符号链接到/usr/bin/rename

    $ dpkg -S /usr/bin/file-rename
    rename: /usr/bin/file-rename
    
    Run Code Online (Sandbox Code Playgroud)

我也有rename.ulfromutil-linux但让我们暂时忽略那个。这 3 个 Perl 脚本有什么区别?他们似乎都有相同的手册页man renameman file-rename并且man prename都给了我相同的页面。

我可以自己查看脚本并尝试了解它们之间的差异,但这并非微不足道,我希望有人会知道每个脚本具有哪些其他特性没有的特性。解释为什么 Debian …

debian perl rename

29
推荐指数
1
解决办法
2587
查看次数

从 TitleCase -> Title Case 批量重命名文件(空格分隔)

我有一个 38GB 的​​文件夹,里面有 800 个 MP4 视频。重新下载后,文件名没有空格,所有单词都连在一起,但还是TitleCase。

所以从TitleCase我需要Title Case

批量重命名这些文件的最有效方法是什么?

我记得很久以前我的发行版中就包含了renameautorename,但现在似乎没有了。

rename

5
推荐指数
2
解决办法
4011
查看次数

带空格的批量重命名目录

我有一堆包含空格的文件和目录(每个文件名中有几个),我正在尝试删除它们。我陷入了rename不理解正则表达式的“愚蠢”之中。到目前为止我最终得到了类似的东西

find . -maxdepth 1 -type d -print0 | perl -pe 'print $_; s/\s+/_/g' | xargs -n 2 -0 mv
Run Code Online (Sandbox Code Playgroud)

尝试结合find(目前我只想重命名第一级目录;我试图规避xargs使用空格作为分隔符的问题-print0)和 Perl 正则表达式的力量。

它正在朝着正确的方向发展(如果我最终改变,mvecho会得到我想要的),但它并不能完全发挥作用。

任何通用建议将不胜感激!

bash regular-expression rename

4
推荐指数
1
解决办法
598
查看次数

使用 perl 脚本重命名 Linux 中的文件

我在 Linux 机器上有一组带有前缀的文件,比如“pre_”,我只想通过删除它来重命名所有这些文件。这是我编写的 perl 代码,它不会引发任何错误,但工作尚未完成。

#!/usr/bin/perl -w
my @files = `ls -1 | grep -i \"pre_.*\"`;
foreach $file ( @files )
{
  my @names = split(/pre_/, $file);
  my $var1 = $names[1];
  'mv "$file" "$var1"';
}
Run Code Online (Sandbox Code Playgroud)

perl file-management rename

4
推荐指数
2
解决办法
1060
查看次数