summaryrefslogtreecommitdiffstats
path: root/funtools/funtbl.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'funtools/funtbl.tmpl')
-rwxr-xr-xfuntools/funtbl.tmpl202
1 files changed, 0 insertions, 202 deletions
diff --git a/funtools/funtbl.tmpl b/funtools/funtbl.tmpl
deleted file mode 100755
index c230c0e..0000000
--- a/funtools/funtbl.tmpl
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/bin/sh
-
-EXE=AWK
-N=1
-FILE=-
-DOHEAD=0
-DORDB=0
-XHEAD=""
-SEP=" "
-
-# process args
-while [ x"$1" != x ]; do
- case $1 in
- -c) shift
- COLS=$1
- shift
- continue;;
- -help|--help)
- echo "usage:"
- echo " "
- echo " funtbl [switches] input_file"
- echo " funtbl [switches] < input_file"
- echo " "
- echo "switches (optional):"
- echo " "
- echo " -c \"col1 ...\" # output columns numbers (def: all)"
- echo " -h # prepend column names as a header"
- echo " -H prefix # prepend prefix and column names"
- echo " -n num # extract the nth data table (def: 1)"
- echo " -p prog # awk program (def: host-specific)"
- echo " -s sep # output separator (def: space)"
- echo " -T # output rdb table format"
- echo " "
- echo " -help # print this message"
- echo " "
- echo "examples:"
- echo " "
- echo " funcnts -rs ... | funtbl -c \"1 3\" -n 4 -s \"\t\""
- echo " funtbl -c \"1 3\" -n 4 -h -s \"\t\" foo.out"
- echo " funtbl -c \"1 3\" -n 4 -T foo.out"
- echo " "
- echo "All 3 will output the first and third columns of the fourth"
- echo "table, with the columns separated by a tab. The second form"
- echo "will output a single line header of column names. The third"
- echo "form will output 2-line rdb header."
- echo " "
- exit 0;;
- -h) DOHEAD=1
- XHEAD="# "
- shift
- continue;;
- -H) DOHEAD=1
- shift
- XHEAD=$1
- shift
- continue;;
- -n) shift
- N=$1
- shift
- continue;;
- -p) shift
- EXE=$1
- shift
- continue;;
- -s) shift
- SEP=$1
- shift
- continue;;
- -T) DORDB=1
- DOHEAD=1
- SEP="\t"
- shift
- continue;;
- *) FILE=$1
- shift
- continue;;
- esac
-done
-
-cat $FILE | \
-$EXE '
-
-BEGIN{
- I=0
- STATE=0
- N='"$N"'
- COLS="'"$COLS"'"
- DOHEAD='"$DOHEAD"'
- DORDB='"$DORDB"'
- SEP="'"$SEP"'"
- XHEAD="'"$XHEAD"'"
- if( COLS == "" ){
- NCOL=0
- }
- else{
- NCOL=split(COLS,COLNAMES);
- }
-}
-
-# state 0: looking for nth header
-STATE==0{
- last = cur
- cur = $0
- dashes=0
- for(j=1; j<=NF; j++){
- if( $j ~ /--*/ ){
- dashes++;
- }
- else{
- break;
- }
- }
- if( (dashes >= 1) && (dashes == NF) ){
- I=I+1
- if( I==N ){
- STATE=1
- LINES=0
- if( DOHEAD == 1 ){
- split(last, HEADER)
- split($0, DASHES)
- }
- }
- }
-}
-
-# look for blank line to end row output
-$0 ~ /^$/{
- if( STATE == 1 ){
- STATE=2
- }
-}
-
-# state 1: output this line of data
-STATE==1{
- # output header, if necessary
- if( LINES == 0 ){
- if( DOHEAD == 1 ){
- # output as comment if not rdb
- if( DORDB != 1 ){
- printf("%s", XHEAD)
- }
- # specific columns
- if( COLS == "" ){
- for(i=1; i<=NF; i++){
- printf("%s", HEADER[i])
- if( i != NF )
- printf("%s", SEP)
- }
- printf("\n")
- if( DORDB == 1 ){
- for(i=1; i<=NF; i++){
- printf("%s", DASHES[i])
- if( i != NF )
- printf("%s", SEP)
- }
- printf("\n")
- }
- }
- # all columns
- else{
- for(i=1; i<=NCOL; i++){
- printf("%s", HEADER[COLNAMES[i]])
- if( i != NCOL ){
- printf("%s", SEP)
- }
- }
- printf("\n")
- if( DORDB == 1 ){
- for(i=1; i<=NCOL; i++){
- printf("%s", DASHES[COLNAMES[i]])
- if( i != NCOL ){
- printf("%s", SEP)
- }
- }
- printf("\n")
- }
- }
- }
- }
- else{
- if( COLS == "" ){
- for(i=1; i<=NF; i++){
- printf("%s", $i)
- if( i != NF )
- printf("%s", SEP)
- }
- printf("\n")
- }
- else{
- split($0, ARGS)
- for(i=1; i<=NCOL; i++){
- printf("%s", ARGS[COLNAMES[i]])
- if( i != NCOL )
- printf("%s", SEP)
- }
- printf("\n")
- }
- }
- LINES=LINES+1
-}
-'
-