#!/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 "${@}"