public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Brian Inglis <Brian.Inglis@SystematicSw.ab.ca>
To: cygwin@cygwin.com
Subject: Re: Problem with output from gawk software in recent Cygwin installation
Date: Mon, 27 Jul 2020 22:05:16 -0600	[thread overview]
Message-ID: <ab599eb1-cc52-2a91-2a95-66c929a86a05@SystematicSw.ab.ca> (raw)
In-Reply-To: <CAC7Qdh3AEkbX849S+VyDgSm0_WYRaP5d0zT2QOvmWpd3t3PMkQ@mail.gmail.com>

On 2020-07-27 15:58, Bryan VanSchouwen wrote:
> On Mon, Jul 27, 2020 at 4:20 PM Brian Inglis wrote:
>> On 2020-07-27 11:50, Michel LaBarre wrote:
>>> On July 27, 2020 12:52 PM, Eliot Moss wrote:
>>>> On 7/27/2020 11:47 AM, Bryan VanSchouwen wrote:
>>>>> I just tried executing an awk script using the most recent version
>>>>> of gawk, but the output did not turn out the way that it was supposed
>>>>> to.
>>>>> This script uses the following command to print the output data to
>>>>> the output file:
>>>>> print(cai[i], rpi[i], i) > 
>>>>> "Fit_Height_correln_plot_-_cPuMP_vs_2NH2-cPuMP.dat"
>>>>> and previously, this command always printed the values of the three 
>>>>> variables on a single line, separated by spaces; however, now the
>>>>> gawk software is automatically adding hard-returns between the
>>>>> values, resulting in the three values being printed on separate lines
>>>>> within the data file.
>>>>> What is going on here, and how do I permanently make it stop??

>>> Here's a wondering: Could it have to do with line endings?  If Windows 
>>> CRLF is getting in there, then the variables might get a CR in them, 
>>> which might do weird things.  This assumes those are string variables, 
>>> not numeric.

>> Better yet, how about an example using manifest constants in a one line
>> sample to eliminate impact of arrays or changes in input data as in: gawk
>> 'BEGIN {print(1,2,3)}' or gawk 'BEGIN {print(1,2,3) > "xxx.txt"}'>
> No problem with awk or gawk:
> $ for ((i = 0; i < 10; ++i))
>   do
>     printf "%d %d %d %d\n" $((i+1)) $((i+2)) $((i+3)) $((i+4))
>   done > test.txt
> $ awk '{print($1, $2, $3)}' test.txt
>     1 2 3
>     2 3 4
>     3 4 5
>     4 5 6
>     5 6 7
>     6 7 8
>     7 8 9
>     8 9 10
>     9 10 11
>     10 11 12
> So the issue appears to be with your command line, script, or input data 
> file: please show the command line used to execute the script, attach the 
> complete awk script, and input data file for diagnosis, or selections of the
> latter piped through or output using cat -A to show control characters.
> Here they are (attached). The script was executed with the following 
> command:> gawk -f peak_intensity_correln_plot_compile.awk
Input files have <CR><LF> \r\n <ctrl-M><ctrl-J> line terminators and those are
carried thru at the ends of the string fields:

$ gawk -f peak_intensity_correln_plot_compile.awk
$ file *cPuMP*.dat
2NH2-cPuMP_nh_-_pk_Fit_Height_data.dat:            ASCII text, with CRLF line
terminators
cPuMP_nh_-_pk_Fit_Height_data.dat:                 ASCII text, with CRLF line
terminators
Fit_Height_correln_plot_-_cPuMP_vs_2NH2-cPuMP.dat: ASCII text, with CR, LF line
terminators
$ cat -A Fit_Height_correln_plot_-_cPuMP_vs_2NH2-cPuMP.dat | head
1571697^M 1716833^M 224$
2672863^M 2894992^M 225$
2184902^M 9710015^M 226$
4393362^M 4095908^M 227$
3828609^M 4218978^M 229$
6285045^M 4008320^M 233$
3936959^M 4104667^M 234$
1698322^M 1942553^M 237$
4144791^M 4346435^M 238$
2546328^M 2804338^M 239$

You could change your input line terminators to "\r\n" e.g. option -vRS="\r\n",
insert '{ sub( /\r$/, ""); before each 'split(x, s, " ")', convert your input
fields from strings to numbers by adding zero i.e. cai[i] += 0; rpi[i] += 0; or
use belts, braces, and suspenders with all three, e.g.

$ gawk -vRS="\r\n" -f peak_intensity_correln_plot_compile.awk
$ file *cPuMP*.dat
2NH2-cPuMP_nh_-_pk_Fit_Height_data.dat:            ASCII text, with CRLF line
terminators
cPuMP_nh_-_pk_Fit_Height_data.dat:                 ASCII text, with CRLF line
terminators
Fit_Height_correln_plot_-_cPuMP_vs_2NH2-cPuMP.dat: ASCII text
$ cat -A Fit_Height_correln_plot_-_cPuMP_vs_2NH2-cPuMP.dat | head
1571697 1716833 224$
2672863 2894992 225$
2184902 9710015 226$
4393362 4095908 227$
3828609 4218978 229$
6285045 4008320 233$
3936959 4104667 234$
1698322 1942553 237$
4144791 4346435 238$
2546328 2804338 239$

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in IEC units and prefixes, physical quantities in SI.]

  parent reply	other threads:[~2020-07-28  4:05 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-27 15:47 Bryan VanSchouwen
2020-07-27 16:38 ` Henry S. Thompson
2020-07-27 16:51 ` Eliot Moss
2020-07-27 17:50   ` Michel LaBarre
2020-07-27 20:17     ` Brian Inglis
     [not found]       ` <CAC7Qdh3AEkbX849S+VyDgSm0_WYRaP5d0zT2QOvmWpd3t3PMkQ@mail.gmail.com>
2020-07-28  4:05         ` Brian Inglis [this message]
2020-07-28 15:32           ` Bryan VanSchouwen
2020-07-28 17:08             ` Brian Inglis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ab599eb1-cc52-2a91-2a95-66c929a86a05@SystematicSw.ab.ca \
    --to=brian.inglis@systematicsw.ab.ca \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).