我知道有很多類似於我的小問題的問題。有幾個被第二個執行程序修復了,但那不是我需要的。也許我只是沒有看到這裏我的問題真的是......發現:在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