• awk/cgi example

    From porkchop@porkchop@invalid.foo (Mike Sanders) to comp.lang.awk on Tue Oct 3 23:39:07 2023
    From Newsgroup: comp.lang.awk

    cgi example using awk:

    server-side file.csv...

    # name, email, address, region

    Moe,moe@microsoft.nul,123 Maple St,Anywhere USA Larry,larry@mit.edu,Hofgartenstr 8,80539 Munchen
    Curly,curly@butterbean.io,1001 Ventura Blvd,Los Angeles CA

    -----------------------------------------------------------

    server-side cgi script...

    #!/bin/sh

    awk '

    BEGIN {
    FS = ","
    print "Content-type: text/plain"
    print ""
    split(ENVIRON["QUERY_STRING"], a, "&")
    b = a[1]
    sub(/^name=/, "", b)
    }

    {
    if (tolower($1) ~ tolower(b)) {
    print $1 " <" $2 ">"
    for(x = 3; x <= NF; x++) print $x
    ++e
    }
    }

    END {if(!e) print b " not listed..."}' /var/www/cgi-bin/buddy.csv

    # eof

    browser query: http://192.168.56.117/cgi-bin/buddy.awk?name=moe

    output...

    Moe <moe@microsoft.nul>
    123 Maple St
    Anywhere USA

    -----------------------------------------------------------

    unix shell script using wget...

    #!/bin/sh

    IPA="192.168.56.117"

    [ $# -eq 0 ] && {
    cat <<ERR

    error no argument specified...
    usage example: buddy.sh curly

    ERR
    exit 1
    }

    wget -qO- http://$IPA/cgi-bin/buddy.awk?name="$*"

    # eof

    command line query: buddy.sh larry

    output...

    Larry <larry@mit.edu>
    Hofgartenstr 8
    80539 Munchen

    -----------------------------------------------------------

    win cmd script using wget...

    @echo off

    set IPA="192.168.56.117"

    if "%~1"=="" goto end

    wget -qO- http://%IPA%/cgi-bin/buddy.awk?name="%*"

    exit /b 0

    :end

    (
    echo error no argument specified...
    echo usage example: buddy.cmd curly
    )

    :: eof

    command line query: buddy.cmd curly

    output...

    Curly <curly@butterbean.io>
    1001 Ventura Blvd
    Los Angeles CA
    --
    :wq
    Mike Sanders

    --- Synchronet 3.20a-Linux NewsLink 1.114