[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gensub embeds spurious carriage return in dos-format input
From: |
michael humphrey |
Subject: |
Re: gensub embeds spurious carriage return in dos-format input |
Date: |
Tue, 21 Dec 2004 15:58:13 -0000 |
false call - there is no problem.
----- Original Message -----
From: michael humphrey
To: address@hidden
Sent: Thursday, 02 December 2004 20:04
Subject: gensub embeds spurious carriage return in dos-format input
the problem occurs when the input file is dos-format and disappears when the
input file is in unix-format.
the problem concerns regular expression component specifiers.
namely, a spurious carriage return ("\r") is embedded at the end of the
replaced text called out by a component specifier.
note that the called out text is from the middle of the input line, so the
input line itself can not be the source of the problem.
the console session below demonstrates the problem.
the configuration is: intel i586/Windows 2000Pro, cygwin 1.5.5
[console session]
address@hidden /nth/wsr
$ gawk -W version
GNU Awk 3.1.3
Copyright (C) 1989, 1991-2003 Free Software Foundation.
address@hidden /nth/wsr
$ cygcheck -sr
Cygwin Win95/NT Configuration Diagnostics
Current System Time: Thu Dec 02 18:47:21 2004
...
Cygwin DLL version info:
DLL version: 1.5.5
DLL epoch: 19
DLL bad signal mask: 19005
DLL old termios: 5
DLL malloc env: 28
API major: 0
API minor: 94
Shared data: 3
DLL identifier: cygwin1
...
address@hidden /nth/wsr
$ cat gawk-problem.awk
/<!-- http.* -->/ {
# gensub embeds "\r" in result if input is dos-format
lurl = gensub(/<!-- (http.*) -->/, "\\1", 1, $0)
printf "KKA lurl=[%s]\n", lurl
# strip trailing "\r" from previous result
nlurl = gensub(/[\n\r]*$/, "", 1, lurl)
printf "KKA nlurl=[%s]\n", nlurl
}
{
next
}
address@hidden /nth/wsr
$ cat dos-input.txt
<!-- http://mmm.vv.nu/ee/yy -->
<p> kkkkkkkkkkkkkk <p> lllllllllllllll
address@hidden /nth/wsr
$ gawk -f gawk-problem.awk < dos-input.txt
]KA lurl=[http://mmm.vv.nu/ee/yy
KKA nlurl=[http://mmm.vv.nu/ee/yy]
address@hidden /nth/wsr
$ cat dos-input.txt | dos2unix > unix-input.txt
address@hidden /nth/wsr
$ gawk -f gawk-problem.awk < unix-input.txt
KKA lurl=[http://mmm.vv.nu/ee/yy]
KKA nlurl=[http://mmm.vv.nu/ee/yy]