2
我設計了一個程序,它遍歷我所有應用程序中不同Solaris(Unix)框中的每個日誌文件,並查找某個錯誤。所以,我設計了這樣的程序:Perl grep在ssh2-> exec中找不到任何東西
my $ssh2 = Net::SSH2->new();
$ssh2->connect($host) or die "Unable to connect Host [email protected] \n";
$ssh2->auth_keyboard($user,$pass) or die "Unable to login [email protected] \n";
$chan1 = $ssh2->channel();
$chan1->exec("find /apps/appName/loc/Logs/server/ -type f | xargs grep \"CVS Call\" ");
while(<$chan1>) {
print $_ . "\n";
}
如果我要grep一個字(只是'CVS'),它的工作原理。然而,第二個我添加一個空格或一個點它沒有找到任何東西。我嘗試用[[:space:]]或[:space:]替換空格,但仍不顯示任何結果。我知道日誌文件包含此錯誤的事實。
我也試過:
$chan1->exec("find /apps/appName/loc/Logs/server/ -type f -exec grep 'CVS Call' '{}' \\; -print");
我得到這個命令相同的結果,作品找到只有一個字,只要我添加第二個字,它不顯示任何結果。
有沒有人有任何想法,爲什麼當我在grep搜索中添加一個空格時,它找不到任何東西。