2013-11-15 28 views
-4

system(「grep \」^ 2013/$ yesterday- \「Log_2013_ $ yesterday * .txt> Log_2013_ $ yesterday.txt」);使這個perl腳本在窗口上工作

我無法運行我的perl腳本具有上面的代碼。它在linux上正常工作。我認爲問題是,窗口上的perl沒有grep命令。所以任何人都可以幫我重寫這個,所以它會在窗口上工作。

我使用FINDSTR

感謝思維,

+2

的Perl *總是*有一個'grep'函數,Windows沒有'grep'命令。 –

+0

安裝http://search.cpan.org/~cwest/ppt-0.14/bin/grep – toolic

+0

我有我的窗口筆記本電腦上的Perl,但它不工作。但是當我在Linux機器上運行代碼時,它工作正常。你看到問題了嗎? – Blaze

回答

0

重新實現grep在Perl,然後用system打電話給你的新grep命令:

# create a new perl script called "grep" in current directory 
# put this near the beginning of your script 
open GREP, ">grep"; 
print GREP <<'EOF'; 
#! perl 
$regex = $ARGV[0]; 
while (<STDIN>) { 
    print if $_ =~ $regex; 
} 
EOF 

$yesterday = ...; 
system("perl grep \"^2013/$yesterday-\" Log_2013_$yesterday*.txt > Log_2013_$yesterday.txt"); 

# note that you have to say system("perl grep ...") now 
# and not just system('grep ...") 
+0

使用fndstr作品!!! – Blaze

相關問題