【问题标题】:Remove space from a filename从文件名中删除空格
【发布时间】:2015-06-19 22:43:02
【问题描述】:

我一直在寻找问题的答案,所以我制作了类似 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";
    }

【问题讨论】:

    标签: perl whitespace removing-whitespace


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      1. 将它们替换为占位符符号(如连字符、竖线或@)
      2. 重命名文件
      3. 再次将占位符符号替换为空格

      这个问题展示了如何做到这一点: Replace whitespace with hyphen in Perl

      【讨论】:

      • 耶稣这太合乎逻辑了,我没想到 -_- 谢谢你
      猜你喜欢
      • 2016-08-22
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多