我知道有很多类似于我的小问题的问题。有几个被第二个执行程序修复了,但那不是我需要的。也许我只是没有看到这里我的问题真的是......发现:在perl脚本中缺少参数到`-exec'
我想匿名在HTML的文件中的所有IP地址在我的博客分析输出:
#!/usr/bin/perl
use warnings;
use strict;
use readPathsFromConf;
system ("find $readPathsFromConf::WWWPATH$readPathsFromConf::WWWSUBDIR -type f -name \"\*\" -exec sed -i '' 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/anonymisiert/g' \{\} \;");
我只得到
find: missing argument to `-exec'
我得到STDOUT正确的文件,当我在命令行输入:只要
find /var/www/statistics/ -type f -name "*"
但我添加exec部分我得到错误。
转义字符有问题吗? 我错过了什么? (请原谅我的英语)
在这种情况下,如果你必须执行'find'这样,周围使用'*'单引号。还可以考虑将命令分解为数组中的命令和参数('my @cmd =(“find”,“/ var/www/statistics /”,“-type”,“-f”,“-name”,“ *“,”-exec“,...);'),然后使用'system @cmd;'。这可以避免运行一个shell来运行该命令。 – 2011-12-29 22:55:18
为什么把*换成单引号而不是双引号?壳牌公司并没有扩大其中的任何一个。 – 2011-12-29 23:27:34