从文件名中删除空格

时间:2015-06-19 14:31:14

标签: perl whitespace removing-whitespace

我一直在寻找我的问题的答案,所以我做了像程序的Windows-cmd,我的一个功能是重命名文件。如果旧名称/新名称中没有空格,那么一切都很好,但只要它是一个空间它根本不起作用。我一直在寻找如何从旧名称和新名称中删除空格(如果有的话),然后继续重命名并将空格放回去,但我不知道如何继续...我一直在读关于“修剪”的一些事情,但它没有帮助。这是我的代码的一部分:

elsif ($fr eq 'ren') {
        $getmenu =~ s/ren //g;
        my ($rf,$kb) = split /[ ]/,$getmenu;
        rename($rf, $kb) || die "Error\n";
        print "\n>$rf has been renamed as $kb\n";
    }

2 个答案:

答案 0 :(得分:1)

使用空格指示文件名的开头和结尾位置,因此名称中不可能有空格。这就是shell使用引用和转义机制的原因。您需要将它们引入您的命令语言。

答案 1 :(得分:0)

由于空格字符是个问题,我会:

  1. 用占位符符号(如连字符,竖线或@)替换它们
  2. 重命名文件
  3. 再次使用空格替换占位符符号
  4. 这个问题说明了如何做到这一点: Replace whitespace with hyphen in Perl