* Possible issue with gawk 5.0.1-1: Getting new warnings @ 2019-07-11 18:51 Vipul P 2019-07-12 10:48 ` Houder 2019-07-12 22:29 ` Steven Penny 0 siblings, 2 replies; 4+ messages in thread From: Vipul P @ 2019-07-11 18:51 UTC (permalink / raw) To: cygwin Hello, Here is a sample script to invoke awk: $ cat ./gawk_error.sh #!/bin/sh echo "This:is:a:colon:separated:line:%%%:" | awk '{ gsub("\\%", "%25", $0); gsub("\\:", "%3A", $0); print }' ---- If I invoke it with gawk 5.0.1-1, I see warnings as below: $ uname -a CYGWIN_NT-10.0 MyPC 3.0.7(0.338/5/3) 2019-04-30 18:08 x86_64 Cygwin $ awk -V GNU Awk 5.0.1, API: 2.0 (GNU MPFR 4.0.2, GNU MP 6.1.2) Copyright (C) 1989, 1991-2019 Free Software Foundation. ... $ ./gawk_error.sh awk: cmd. line:2: (FILENAME=- FNR=1) warning: regexp escape sequence `\%' is not a known regexp operator awk: cmd. line:3: (FILENAME=- FNR=1) warning: regexp escape sequence `\:' is not a known regexp operator This%3Ais%3Aa%3Acolon%3Aseparated%3Aline%3A%25%25%25%3A ----- This script runs without any warnings with older versions of gawk: $ awk -V GNU Awk 4.2.1, API: 2.0 (GNU MPFR 4.0.1, GNU MP 6.1.2) Copyright (C) 1989, 1991-2018 Free Software Foundation. ... $ ./gawk_error.sh This%3Ais%3Aa%3Acolon%3Aseparated%3Aline%3A%25%25%25%3A ---- The script runs without any warnings on Linux and other Unix variants. Is this a regression in gawk 5.0.1-1 on Cygwin ? Thanks in advance. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Possible issue with gawk 5.0.1-1: Getting new warnings 2019-07-11 18:51 Possible issue with gawk 5.0.1-1: Getting new warnings Vipul P @ 2019-07-12 10:48 ` Houder 2019-07-12 14:43 ` Brian Inglis 2019-07-12 22:29 ` Steven Penny 1 sibling, 1 reply; 4+ messages in thread From: Houder @ 2019-07-12 10:48 UTC (permalink / raw) To: cygwin Hi, Apparently Corinna V. (the maintainer of gawk) is not available at the moment. On Thu, 11 Jul 2019 11:51:09, Vipul P wrote: > Hello, > > Here is a sample script to invoke awk: > > $ cat ./gawk_error.sh > #!/bin/sh > echo "This:is:a:colon:separated:line:%%%:" | awk '{ > gsub("\\%", "%25", $0); > gsub("\\:", "%3A", $0); > print > }' ????? gsub(regexp, replacement[, target]) echo "This:is:a:colon:separated:line:%%%:" | awk '{ gsub(/%/, "%25"); gsub(/:/, "%3A"); print }' > ---- > > If I invoke it with gawk 5.0.1-1, I see warnings as below: > > $ uname -a > CYGWIN_NT-10.0 MyPC 3.0.7(0.338/5/3) 2019-04-30 18:08 x86_64 Cygwin > > $ awk -V > GNU Awk 5.0.1, API: 2.0 (GNU MPFR 4.0.2, GNU MP 6.1.2) > Copyright (C) 1989, 1991-2019 Free Software Foundation. > ... > > $ ./gawk_error.sh > awk: cmd. line:2: (FILENAME=- FNR=1) warning: regexp escape sequence `\%' > is not a known regexp operator > awk: cmd. line:3: (FILENAME=- FNR=1) warning: regexp escape sequence `\:' > is not a known regexp operator > This%3Ais%3Aa%3Acolon%3Aseparated%3Aline%3A%25%25%25%3A I am not surprised to see these specific warnings ... See 3.2 (esacpe sequences) of GAWK: Effective AWK programming. > ----- > This script runs without any warnings with older versions of gawk: [snip] https://cygwin.com/ml/cygwin/2019-04/msg00095.html ( [ANNOUNCEMENT] gawk 5.0.0-1 ) Item 3 > ---- > > The script runs without any warnings on Linux and other Unix variants. Using version 5 of gawk? > > Is this a regression in gawk 5.0.1-1 on Cygwin ? Not very likely, as Corinna V. uses the tarball provided by Arnold R. Regards, Henri -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Possible issue with gawk 5.0.1-1: Getting new warnings 2019-07-12 10:48 ` Houder @ 2019-07-12 14:43 ` Brian Inglis 0 siblings, 0 replies; 4+ messages in thread From: Brian Inglis @ 2019-07-12 14:43 UTC (permalink / raw) To: cygwin On 2019-07-12 04:47, Houder wrote: > On Thu, 11 Jul 2019 11:51:09, Vipul P wrote: >> Here is a sample script to invoke awk: >> $ cat ./gawk_error.sh >> #!/bin/sh >> echo "This:is:a:colon:separated:line:%%%:" | awk '{ >> gsub("\\%", "%25", $0); >> gsub("\\:", "%3A", $0); >> print >> }' > gsub(regexp, replacement[, target]) > echo "This:is:a:colon:separated:line:%%%:" | awk '{ > gsub(/%/, "%25"); > gsub(/:/, "%3A"); > print > }' >> If I invoke it with gawk 5.0.1-1, I see warnings as below: >> $ uname -a >> CYGWIN_NT-10.0 MyPC 3.0.7(0.338/5/3) 2019-04-30 18:08 x86_64 Cygwin >> $ awk -V >> GNU Awk 5.0.1, API: 2.0 (GNU MPFR 4.0.2, GNU MP 6.1.2) >> Copyright (C) 1989, 1991-2019 Free Software Foundation. >> $ ./gawk_error.sh >> awk: cmd. line:2: (FILENAME=- FNR=1) warning: regexp escape sequence `\%' >> is not a known regexp operator >> awk: cmd. line:3: (FILENAME=- FNR=1) warning: regexp escape sequence `\:' >> is not a known regexp operator >> This%3Ais%3Aa%3Acolon%3Aseparated%3Aline%3A%25%25%25%3A > I am not surprised to see these specific warnings ... > See 3.2 (escape sequences) of GAWK: Effective AWK programming. >> This script runs without any warnings with older versions of gawk: > https://cygwin.com/ml/cygwin/2019-04/msg00095.html > ( [ANNOUNCEMENT] gawk 5.0.0-1 ) >> The script runs without any warnings on Linux and other Unix variants. > Using version 5 of gawk? >> Is this a regression in gawk 5.0.1-1 on Cygwin ? > Not very likely, as Corinna V. uses the tarball provided by Arnold R. The first gsub argument is a regexp, so using a quoted string it must follow the rules for a computed regexp: either "%"/":" to match characters alone or "\\\\%"/"\\\\:" for characters preceded by backslash "\", as you wish. Specifying only a single backslash regexp /\x/ or double backslash string "\\x", the character must be a regexp special or it generates a warning message. $ awk '{gsub("%", "%25", $0);gsub(":", "%3A", $0);print}' \ <<< "This:is:a:colon:separated:line:%%%:" This%3Ais%3Aa%3Acolon%3Aseparated%3Aline%3A%25%25%25%3A $ awk '{gsub("\\\\%", "%25", $0);gsub("\\\\:", "%3A", $0);print}' \ <<< "This:is:a:colon:separated:line:%%%:" This:is:a:colon:separated:line:%%%: $ awk '{gsub(/%/, "%25", $0);gsub(/:/, "%3A", $0);print}' \ <<< "This:is:a:colon:separated:line:%%%:" This%3Ais%3Aa%3Acolon%3Aseparated%3Aline%3A%25%25%25%3A $ awk '{gsub(/\\%/, "%25", $0);gsub(/\\:/, "%3A", $0);print}' \ <<< "This:is:a:colon:separated:line:%%%:" This:is:a:colon:separated:line:%%%: -- 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. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Possible issue with gawk 5.0.1-1: Getting new warnings 2019-07-11 18:51 Possible issue with gawk 5.0.1-1: Getting new warnings Vipul P 2019-07-12 10:48 ` Houder @ 2019-07-12 22:29 ` Steven Penny 1 sibling, 0 replies; 4+ messages in thread From: Steven Penny @ 2019-07-12 22:29 UTC (permalink / raw) To: cygwin On Thu, 11 Jul 2019 11:51:09, Vipul P wrote: > Here is a sample script to invoke awk: > > $ cat ./gawk_error.sh > #!/bin/sh > echo "This:is:a:colon:separated:line:%%%:" | awk '{ > gsub("\\%", "%25", $0); > gsub("\\:", "%3A", $0); > print > }' As others said, your invocation is not idiomatic AWK. Anywhere that regular expressions are expected, like the first argument to "gsub", regular expressions should be used. If you use a string, you need an extra level of escaping, as the AWK lexer will parse the string twice: > If the right-hand operand is any expression other than the lexical token > **ERE**, the string value of the expression shall be interpreted as an > extended regular expression, including the escape conventions described > above. Note that these same escape conventions shall also be applied in > determining the value of a string literal (the lexical token **STRING**), > and thus shall be applied a second time when a string literal is used in > this context. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html#tag_20_06_13_04 -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-07-12 22:29 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-07-11 18:51 Possible issue with gawk 5.0.1-1: Getting new warnings Vipul P 2019-07-12 10:48 ` Houder 2019-07-12 14:43 ` Brian Inglis 2019-07-12 22:29 ` Steven Penny
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).