Home About BC DR HA Support Training Download
You are here: Home/ Downloads/ Scripts/ Korn/ K93_Unix/ Please Login or Register

-
Current Location
-

js
  Downloads
    Scripts
      Korn
        K93_Unix
-
AIX Admin Methodology
Global Consolidation Project
All AIX admins should join
www.aixexpert.com


Join our LinkedIn Group
AIX Advanced Technical Experts
Contract Opportunities

www.LinkedIn.com

-
digg Digg this page
del.icio.us Post to del.icio.us
Slashdot Slashdot it!


LPAR Leasing
Lease an AIX / i5 LPAR
Reduce your costs

www.mtxia.com

Server Leasing
Lease a Server off-site
Reduce your costs

www.mtxia.com

Data Center Automation
Business Continuity and DR
Virtualization/Consolidation

www.mtxia.com

HMC Service
Hardware Management Console
Manage Remote AIX / i5 LPARs

www.siteox.com

Business Web Site Hosting
$3.99 / month includes Tools,
Shopping Cart, Site Builder

www.siteox.com

Disaster Recovery
Small Business Oriented
Off-Site Facilities

www.mtxia.com

IBM pSeries / iSeries
Reduce your Costs
Off-Site Server Hosting

www.mtxia.com



#!/usr/bin/ksh93
################################################################
#### Program: cut_k93
#### 
#### Description: Emulation of the Unix "cut" cutand
#### 
#### Author: Dana French (dfrench@mtxia.com)
####         Copyright 2004
#### 
#### Date: 07/22/2004
#### 
################################################################
function cut_k93 {
  typeset TRUE="0"
  typeset FALSE="1"
  typeset CUTCOLS="${FALSE}"
  typeset CUTFLDS="${FALSE}"
  typeset VERBOSE="${FALSE}"
  typeset VERYVERB="${FALSE}"
  typeset DELIM="${IFS}"
  typeset LINE
  typeset FLDS
  typeset COLS
  typeset BEGIN
  typeset END
  typeset IDX
  typeset NEWLINE
  typeset FNAME

  while getopts ":d:c:f:vV" OPTION
  do
    case "${OPTION}" in
        'd') DELIM="${OPTARG}";;
        'c') COLS="${OPTARG}"
             CUTCOLS="${TRUE}";;
        'f') FLDS="${OPTARG}"
             CUTFLDS="${TRUE}";;
        'v') VERBOSE="${TRUE}";;
        'V') VERYVERB="${TRUE}";;
        '?') print "Syntax: cut_k93 [-d delim] [-c 0-9] [-f 0-9] file ..." && exit 1 ;;
    esac
  done
 
  shift $(( ${OPTIND} - 1 ))

  if (( CUTCOLS == TRUE && CUTFLDS == TRUE ))
  then
    print "ERROR: You may specify '-c' OR '-f' but not both."
    exit 4
  fi

  typeset STDIN="${1:+${FALSE}}"
  STDIN="${STDIN:-${TRUE}}"

#### Read in the data either from STDIN or one or more files
  if (( STDIN == TRUE ))
  then
      (( CUTCOLS == TRUE )) && cutcols_k93 "${COLS}"
      (( CUTFLDS == TRUE )) && cutflds_k93 "${FLDS}" "${DELIM}"
  else
      for FNAME in "${@}"
      do
          exec 0<"${FNAME}"
            (( CUTCOLS == TRUE )) && cutcols_k93 "${COLS}"
            (( CUTFLDS == TRUE )) && cutflds_k93 "${FLDS}" "${DELIM}"
          exec 0<&-
      done
  fi

  return 0
}
################################################################
function cutcols_k93 {
    typeset COLS="${1}"
    typeset LINE
    typeset COLS
    typeset BEGIN
    typeset END

    while read -r -- LINE
    do
        IFS="${IFS},"
        for CUT in ${COLS}
        do
          BEGIN="${CUT}"
          END="1"
          [[ "${CUT//-/_}" = *_* ]] && BEGIN="${CUT%%-*}" && END="${CUT##*-}"
          [[ "${CUT//-/_}" = *_* ]] && (( END = END - BEGIN + 1 ))
          (( BEGIN-- ))
          print -r -n -- "${LINE:BEGIN:END}"
        done
        print
    done
}
################################################################
function cutflds_k93 {
    typeset FLDS="${1}"
    typeset DELIM="${2}"
    typeset TRUE="0"
    typeset FALSE="1"
    typeset NEWLINE="${TRUE}"
    typeset LINE
    typeset FLDS
    typeset BEGIN
    typeset END
    typeset IDX

    while IFS="${DELIM}" read -r -A -- LINE
    do
        IFS=$', \t\n'
        for CUT in ${FLDS}
        do
          BEGIN="${CUT}"
          END="${BEGIN}"
          [[ "${CUT//-/_}" = *_* ]] && BEGIN="${CUT%%-*}" && END="${CUT##*-}"
          (( BEGIN-- ))
          (( END-- ))
          for (( IDX=BEGIN; IDX<=END; ++IDX ))
          do
            (( NEWLINE == FALSE )) && print -r -n -- "${DELIM:0:1}"
            print -r -n -- "${LINE[${IDX}]}"
            NEWLINE="${FALSE}"
          done
        done
        print
        NEWLINE="${TRUE}"
        unset LINE
    done
}
################################################################

cut_k93 "${@}"

-
cut_k93
-
 


LPAR Leasing
Lease an AIX / i5 LPAR
Reduce your costs

www.mtxia.com

Server Leasing
Lease a Server off-site
Reduce your costs

www.mtxia.com

Data Center Automation
Business Continuity and DR
Virtualization/Consolidation

www.mtxia.com

HMC Service
Hardware Management Console
Manage Remote AIX / i5 LPARs

www.siteox.com

Business Web Site Hosting
$3.99 / month includes Tools,
Shopping Cart, Site Builder

www.siteox.com

FREE Domain Registration
included with Web Site Hosting
Tools, Social Networking, Blog

www.siteox.com

Disaster Recovery
Small Business Oriented
Off-Site Facilities

www.mtxia.com

IBM pSeries / iSeries
Reduce your Costs
Off-Site Server Hosting

www.mtxia.com