exec function not returning all rows

Viewed 16803

My awk command works as expected and returns 2 lines at command prompt.

When I use php "exec" function, it returns only the second line.

echo exec("awk -v RS=\",\" '/some_text/' test1.html");

How do I return all output of shell command using PHP?

2 Answers

Though this question is answered, I'm posting this alternate solution for more options.

This solution replaces line-breaks directly on shell using shell tr command, and pipes through the one-line result.

Also php's exec command requires a second argument for assigning the shell output, while shell_exec can be used directly to declare or output the result of shell execution.

Updating above example, to replace line-breaks \n with a blank space, which could be any other string, however, cannot be empty.

echo shell_exec("awk -v RS=\",\" '/some_text/' test1.html | tr '\n' ' '");

To simply remove all line-breaks without replacements using the -d flag of tr command,

echo shell_exec("awk -v RS=\",\" '/some_text/' test1.html | tr -d '\n'");
Related