在perl中添加带有正则表达式的撇号

时间:2014-04-24 04:33:24

标签: perl expression

我正在使用命令ls -ld /path1/*.ext1 /path2/*.ext2, etc.

搜索目录

有时,文件名称包含特殊字符:)(等。

因此,我想在每个搜索目录中添加撇号。

例如:

$filter="ls -ld /path1/*ext1 /path2/*ext2"; (1)

$filter=~ ...                             ; (2)

应用正则表达式后的结果应为:

ls -ld '/path1/*ext1' '/path2/*ext2'   (with apostrophes)

应该放在(2)中的正则表达式是什么?

1 个答案:

答案 0 :(得分:0)

这会像你问的那样解决问题:

$filter =~ s!(\S+)!'$1'!g;

更好的方法:

while (glob("/path1/*ext1 /path2/*ext2"){
  process_file($_);
}

此致