В моята c++ програма искам да изпълня perl команда и да прочета резултата, върнат от изпълнението. Използвам popen за това, но получавам грешка при изпълнение на моята команда:
команда:
string cmd = "perl -ne 's/^\\S+\\s//; if ((/" +
pattern1+ " START/ .. /" + pattern2+ " END/) && /find/)"
" { print \"$_\"}' file";
stream = popen(cmd.c_str(),"r");
Ако изпълня тази команда в командния ред, тя работи, но в C++ получавам тази грешка:
Search pattern not terminated at -e line 1.
Командата, която работи в командния ред, е, че в C++ вече избягах '\' и '"':
perl -ne 's/^\\S+\\s//; if ((/aaa START/ .. /bbb END/) && /find/) { print "$_"}' file
Ако изпълня тази команда, тя работи: "perl -ne print $_ file". Но първоначалната ми команда не го прави. Какво правя грешно. Благодаря.
cout
този низ изглежда ли така, както очаквате? - person Tom Fenech   schedule 21.11.2013file
? - person Tom Fenech   schedule 21.11.2013