Talk About Network



Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Awk > MS-Windows gawk...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 65 of 66 Topic 2142 of 2236
Post > Topic >>

MS-Windows gawk pipe support (Was Re: GUI Awk)

by Manuel Collado <m.collado@[EMAIL PROTECTED] > Feb 17, 2008 at 05:04 PM

Kees Nuyt escribió:
> On Sat, 16 Feb 2008 10:55:43 -0600, Ted Davis
> ...
> Yes, it's hard to find a gawk with 2way pipes for
> MSWindows, but there is a cygwin gawk version that does. 
> 
> It is called gawki.exe :
> $ gawki --version
> GNU Awk 3.1.1
> Copyright (C) 1989, 1991-2002 Free Software Foundation.
> 
> It also supports 2way pipes to TCP / UDP ports.

Well, my out-of-the box Cygwin build of gawk just support |& without 
problem, at least for inet operations:

I:\Trabajos\gawk\webargs>cygwin gawk --version
GNU Awk 3.1.5
Copyright (C) 1989, 1991-2005 Free Software Foundation.
....

Here is a sample code to retrieve argument files from Internet:

===== webargs.awk =====
#------------------------------------------------------------------
# webargs --- retrieve remote argument files via HTTP 1.0
#
# Manuel Collado, http://lml.ls.fi.upm.es/~mcollado,
Public domain
# November, 2006
#
# Based on sample code from gawkinet docs and libraries by J. Kahrs
#
# USAGE
#   gawk -f webargs.awk -f myprogram.awk  url_or_file_arguments ...
#
# TODO
#   Avoid duplicate downloads (cache)
#   Handle ports in URLs
#   Handle HTTP redirections
#   Handle other protocols


BEGIN {
    # replace remote arguments with local copies
    _rs = RS
    _ors = ORS
    ORS = RS = "\r\n\r\n"
    for (_k = 1; _k < ARGC; _k++) {
       _url = ARGV[_k]
       if (match(_url,"://[^/]+")) {
          printf( "webargs: remote: %s -> ", _url ) > "/dev/stderr"
          _protocol = substr(_url, 1, RSTART-1)
          if (tolower(_protocol) != "http") {
             printf( "'%s' protocol not supported\n", _protocol ) > 
"/dev/stderr"
             continue
          }
          _localarg = "webarg~" _k
          printf( "local: %s\n", _localarg ) > "/dev/stderr"
          _host = substr( _url, RSTART+3, RLENGTH-3 )
          _port = 80
          _method = "GET"
          _service = "/inet/tcp/0/" _host "/" _port
          print _method " " _url " HTTP/1.0" |& _service
          _service |& getline _header
          split( _header, _hfield, "[\\r\\n]+" )
          print _hfield[1] > "/dev/stderr"
          while ((_service |& getline) > 0)
             printf( "%s", $0 ) > _localarg
          close(_service)
          close(_localarg)
          _filename[_localarg] = _url
          ARGV[_k]= _localarg
       }
    }
    RS = _rs
    ORS = _ors
}

# restore original argument names when processing files
FNR==1 && (FILENAME in _filename) {
    FILENAME = _filename[FILENAME]
}


==== list.awk ====
{
    print FILENAME, FNR, $0
}


To exercise the code, run:

     gawk  -f webargs.awk  -f list.awk  http://sample1
http://sample2
...


Regards.
-- 
Manuel Collado - http://lml.ls.fi.upm.es/~mcollado




 66 Posts in Topic:
GUI Awk
happytoday <ehabaziz20  2008-01-25 18:37:15 
Re: GUI Awk
Janis Papanagnou <Jani  2008-01-26 12:24:26 
Re: GUI Awk
Kees Nuyt <k.nuyt@[EMA  2008-01-26 13:32:35 
Re: GUI Awk
Ted Davis <tdavis@[EMA  2008-01-26 10:40:19 
Re: GUI Awk
pgas <pierre.gaston@[E  2008-01-26 17:22:39 
Re: GUI Awk
happytoday <ehabaziz20  2008-01-26 12:13:50 
Re: GUI Awk
Cesar Rabak <csrabak@[  2008-01-26 18:45:16 
Re: GUI Awk
gazelle@[EMAIL PROTECTED]  2008-01-26 20:41:37 
Re: GUI Awk
"rex" <rex@[  2008-01-29 19:15:57 
TAWK Dll (Was: GUI Awk)
gazelle@[EMAIL PROTECTED]  2008-01-30 17:03:11 
Re: GUI Awk
happytoday <ehabaziz20  2008-01-26 12:18:20 
Re: GUI Awk
happytoday <ehabaziz20  2008-01-26 15:09:21 
Re: GUI Awk
Ted Davis <tdavis@[EMA  2008-01-26 19:16:33 
Re: GUI Awk
happytoday <ehabaziz20  2008-01-26 15:15:02 
Re: GUI Awk
happytoday <ehabaziz20  2008-01-27 14:48:40 
Re: GUI Awk
Ted Davis <tdavis@[EMA  2008-01-27 18:06:50 
Re: GUI Awk
Manuel Collado <m.coll  2008-01-28 11:23:43 
Re: GUI Awk
Adrian Davis <adrian@[  2008-01-28 03:57:50 
Re: GUI Awk
ggrothendieck <ggrothe  2008-01-28 23:02:08 
Re: GUI Awk
happytoday <ehabaziz20  2008-01-29 14:04:01 
Re: GUI Awk
Juergen Kahrs <Juergen  2008-01-30 09:25:24 
Re: GUI Awk
Al <palcibiades-first@  2008-02-02 07:59:25 
Re: GUI Awk
Ted Davis <tdavis@[EMA  2008-02-02 11:17:05 
Re: GUI Awk
"Luuk" <luuk  2008-02-02 18:42:27 
Re: GUI Awk
Ted Davis <tdavis@[EMA  2008-02-02 19:20:08 
Re: GUI Awk
colin.macleod@[EMAIL PROT  2008-02-04 06:45:59 
Re: GUI Awk
gazelle@[EMAIL PROTECTED]  2008-02-04 15:33:09 
Re: GUI Awk
Adrian Davis <adrian@[  2008-02-04 08:16:45 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-07 08:47:34 
Re: GUI Awk
Ted Davis <tdavis@[EMA  2008-02-07 15:25:33 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-16 13:31:17 
Re: GUI Awk
Kees Nuyt <k.nuyt@[EMA  2008-02-17 00:18:27 
Re: GUI Awk
=?ISO-8859-1?Q?J=FCrgen_K  2008-02-17 11:20:42 
Re: GUI Awk
Kees Nuyt <k.nuyt@[EMA  2008-02-17 15:19:23 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-08 12:27:00 
Re: GUI Awk
Ted Davis <tdavis@[EMA  2008-02-08 15:25:01 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-17 08:57:24 
Re: GUI Awk
gazelle@[EMAIL PROTECTED]  2008-02-17 17:23:02 
Re: GUI Awk
=?ISO-8859-1?Q?J=FCrgen_K  2008-02-17 18:32:00 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-17 13:40:53 
Re: GUI Awk
Juergen Kahrs <Juergen  2008-02-18 08:49:26 
Re: GUI Awk
Ted Davis <tdavis@[EMA  2008-02-18 08:03:46 
Re: GUI Awk
Kees Nuyt <k.nuyt@[EMA  2008-02-18 19:59:57 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-18 14:09:35 
Re: GUI Awk
=?ISO-8859-1?Q?J=FCrgen_K  2008-02-19 17:57:20 
Re: GUI Awk
=?ISO-8859-1?Q?J=FCrgen_K  2008-02-19 17:58:35 
Re: GUI Awk
Kees Nuyt <k.nuyt@[EMA  2008-02-19 19:34:32 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-09 12:19:53 
Re: GUI Awk
Ted Davis <tdavis@[EMA  2008-02-09 19:27:59 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-21 10:56:45 
Re: GUI Awk
=?ISO-8859-1?Q?J=FCrgen_K  2008-02-21 20:29:38 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-22 02:11:39 
Re: GUI Awk
Juergen Kahrs <Juergen  2008-02-22 11:59:34 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-22 06:46:51 
Re: GUI Awk
=?ISO-8859-1?Q?J=FCrgen_K  2008-02-22 20:19:13 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-22 12:06:45 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-22 12:08:58 
Re: GUI Awk
=?ISO-8859-1?Q?J=FCrgen_K  2008-02-22 21:38:38 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-22 22:31:09 
Re: GUI Awk
=?ISO-8859-1?Q?J=FCrgen_K  2008-02-23 16:11:38 
Re: GUI Awk
happytoday <ehabaziz20  2008-02-16 05:30:24 
Re: GUI Awk
=?ISO-8859-1?Q?J=FCrgen_K  2008-02-16 16:12:28 
Re: GUI Awk
Ted Davis <tdavis@[EMA  2008-02-16 10:55:43 
Re: GUI Awk
Kees Nuyt <k.nuyt@[EMA  2008-02-16 20:18:09 
MS-Windows gawk pipe support (Was Re: GUI Awk)
Manuel Collado <m.coll  2008-02-17 17:04:53 
Re: MS-Windows gawk pipe support (Was Re: GUI Awk)
gazelle@[EMAIL PROTECTED]  2008-02-17 16:55:28 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri May 16 2:30:23 CDT 2008.