help-gawk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fwd: inconstancy with RS = "(\r?\n){2}"


From: Ed Morton
Subject: Re: Fwd: inconstancy with RS = "(\r?\n){2}"
Date: Mon, 26 Jul 2021 12:00:59 -0500
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0



On 7/26/2021 11:27 AM, Alex fxmbsw7 Ratchev wrote:
i will cause i have to RS = "" and FS = "\n"
and in another gawk strip the optional \r's away
It wasn't clear to me that you wanted to just discard the `\r`s, that makes things even simpler. Given that - yes, you can use a separate call to awk to remove `\r`s before piping to your real script or you can do what I suggested below but change `$0 ~ /^\r?$/` to `{ sub(/\r$/,"") } $0 == ""`.

    Ed.

On Mon, Jul 26, 2021, 17:01 Ed Morton <mortoneccc@comcast.net> wrote:

On 7/26/2021 8:15 AM, Alex fxmbsw7 Ratchev wrote:

---------- Forwarded message ---------
From: Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> <fxmbsw7@gmail.com>
Date: Mon, Jul 26, 2021, 15:13
Subject: Re: inconstancy with RS = "(\r?\n){2}"
To: Aharon Robbins <arnold@skeeve.com> <arnold@skeeve.com>


but the RS issue remains
oh well up to better times somewhen else
thanks :)


Have you considered just writing code to decide if a pair of `\r?\n`s has
been seen instead of using a more complicated RS? For example, using the
default RS and ORS, I think this will do what you want:

--------
$ cat tst.awk
$0 ~ /^\r?$/ {
     gotRS = 1
     lineNr = 0
}
!gotRS {
     # just keep appending to the record until the real RS is found
     rec = ( ++lineNr == 1 ? "" : rec ORS) $0
     next
}
{
     # we have a complete record so save it in $0 and process as normal
     gotRS = 0
     $0 = rec
     print "<" $0 ">"
}
--------
$ awk -f tst.awk
1
2

<1
2>
3

<3>
--------

Regards,

     Ed.



On Mon, Jul 26, 2021, 15:12 <arnold@skeeve.com> <arnold@skeeve.com> wrote:


I'm sorry.

I give up.

You will have to use another approach. Maybe using gawk's built-in
networking will help.

Good luck.

Arnold

Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> <fxmbsw7@gmail.com> wrote:


and no it doesnt work
also on the stderr cmd i had to quit nc ( didnt try control d ) and then
the rest appeared, on the tcpserv side, .. seems bug nothing done
i fetched git clone new and did bootstrap and further

On Mon, Jul 26, 2021, 15:07 Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> 
<fxmbsw7@gmail.com>

wrote:

  i just got now to it
in my testing on terminal still same bug, on testing that gawk > stderr
cmd even more newlines were needed to make it print ( on the tcpserv

term )

that makes it invalid for my httpd and the bug but ill just try now too

On Mon, Jul 26, 2021, 13:24 Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com> 
<fxmbsw7@gmail.com>
wrote:


thank you big time ! ill just test now
sorry for not knowing much git

On Mon, Jul 26, 2021, 13:17 <arnold@skeeve.com> <arnold@skeeve.com> wrote:


Please do

         make distclean
         git pull
         git checkout test-socket-patch
         ./bootstrap.sh && ./configure && make

I applied the patch and pushed it to git in that branch.

Arnold







reply via email to

[Prev in Thread] Current Thread [Next in Thread]