#!/usr/bin/ksh93
################################################################
#### Program: awk_k93
####
#### Description: This is a korn shell emulation of the "awk"
#### capability of extracting and reordering fields from an
#### input stream.
####
#### Author: Dana French (dfrench@mtxia.com)
#### Copyright 2004
####
#### Date: 07/22/2004
####
#### Syntax: awk_k93 [-FX] '{ print $# ... }' < file
####
#### Where -FX allows the field delimiter to be defined as the
#### character X.
####
#### One or more fields can be returned based on the positional
#### parameters defined in the required parameter. The "print"
#### statement is required to simulate the "awk" syntax.
####
################################################################
function awk_k93 {
[[ "_${1:?${0}: undefined parameter}" = _-F? ]] && IFS="${1#-F}" && shift
VARS="${1// /}"
VARS="${VARS/#\{print(*)\}/print -r -- \1}"
while read LINE
do eval set -- ${LINE}
eval eval "\"${VARS//,/ }\""
done
}
################################################################
awk_k93 "${@}"