Under windows command line:
ps -ef | perl -ane '1..1 and /^(.*)CO?MM?A?N?D/ and $s=length
$1;s/^.{$s}//; print "@F[1,2] $_"'
Can't find string terminator "'" anywhere before EOF at -e line 1.

ps -ef | perl -ane "1..1 and /^(.*)CO?MM?A?N?D/ and $s=length
$1;s/^.{$s}//; print qq{@F[1,2] $_}"
PID PPID COMMAND
5324 1 /msys/bin/bash
6308 1 /msys/bin/ps

On Mon, Apr 13, 2015 at 1:38 PM, Tzafrir Poupko <tzaf...@ceemple.com> wrote:

> Hi,
>
> Sorry for the long delay in my response, it took me a while to get back to
> this.
>
> when I try the command in msys bash I get
> PID PPID COMMAND
> 5324 1 /msys/bin/bash
> 5976 5324 /msys/bin/bash
> 6184 5324 /msys/bin/ps
>
> But when I try in command line, I get
> Can't find string terminator "'" anywhere before EOF at -e line 1.
>
> It seems that perl runs new process under a windows command prompt, and
> not under bash.
> So the quotes are not parsed correctly
>
> Thanks,
> Tzafrir
>
> On Sun, Apr 5, 2015 at 12:19 PM, Ole Tange <ta...@gnu.org> wrote:
>
>> On Sun, Apr 5, 2015 at 10:12 AM, Tzafrir Poupko <tzaf...@ceemple.com>
>> wrote:
>>
>> > I had to change the command:
>>
>> Why?
>>
>> > 3451,3452c3451,3452
>> > <           my $sysv = q( ps -ef | perl -ane '1..1 and
>> /^(.*)CO?MM?A?N?D/
>> > and $s=length $1;).
>> > <               q(s/^.{$s}//; print "@F[1,2] $_"' );
>> > ---
>> >>           my $sysv = q( ps -ef | perl -ane "1..1 and /^(.*)CO?MM?A?N?D/
>> >> and $s=length $1;).
>> >>               q(s/^.{$s}//; print qq{@F[1,2] $_}" );
>>
>> That will not work. Remember that " is not the same as '. $s, $1 and
>> $_ are now quoted wrongly, and will cause it to fail miserably when
>> run.
>>
>> > It is still not working, but now with other errors:
>> >
>> > ~/tmp/parallel/src $ Can't find string terminator "'" anywhere before
>> EOF at
>> > -e line 1.
>>
>> Yes. That is expected from your change.
>>
>> Can I ask you again to test this on the command line:
>>
>>     ps -ef | perl -ane '1..1 and /^(.*)CO?MM?A?N?D/ and $s=length
>> $1;s/^.{$s}//; print "@F[1,2] $_"'
>>
>> From your output it seems this version will work.
>>
>>
>> /Ole
>>
>
>

Reply via email to