2013-11-15 4 views
-4

system ("grep \"^2013/$ вчера- \ "Log_2013_ $ вчера * .txt> Log_2013_ $ вчера.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 на моем ноутбуке, но он не работает. но когда я запускал код i linux machine, он отлично работает. Ты видишь проблему? – 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 works !!! – Blaze

Смежные вопросы