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: Alex fxmbsw7 Ratchev
Subject: Re: Fwd: inconstancy with RS = "(\r?\n){2}"
Date: Mon, 26 Jul 2021 20:07:33 +0200

and indeed i sometimes recieve nothing

tcpserver 0 1024 gawk -v RS=\\n\\n '{ print "ye" }'

and in nc to it, many newlines, no ye back
hmh ?

ill look up if i can find the mailing list

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

> no idea, with RS = "\n\n" on terminal no prob, but it may br tcpservers
> fault, or gawk fail to recognize raw data by tcpserver
> curl doesnt return, control-c makes the bash reader that reads the gawk
> recieve it, not before, hmm ..
>
> On Mon, Jul 26, 2021, 19:17 Alex fxmbsw7 Ratchev <fxmbsw7@gmail.com>
> wrote:
>
>> id like to keep the double \n RS as was in my code, so i just separately
>> before strip em away
>>
>> thanks you for your input :)
>>
>> On Mon, Jul 26, 2021, 19:01 Ed Morton <mortoneccc@comcast.net> wrote:
>>
>>>
>>>
>>> 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> 
>>> <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> 
>>> <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> 
>>> <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> 
>>> <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> 
>>> <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> <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> <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> 
>>> <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]