#Generic Converter from CSV to HTML
      #!/bin/bash
      usage()
      {
      cat <<EOF
      Usage:$(basename $0)[OPTIONS] input_file > ouptut.html
      Explicit Delimiter can be specified if not then it default to comma as delimiter  
      Options:
      -d specify delimiter , instead of comma
      --head specified then treats first line as column header , <thead> and <th> tags
      --foot last line , <tfoot> and <th> tags
      Samples:
      1.$(basename $0) input.csv
      Parse 'input.csv' with comma as delimiter and send HTML table to STDOUT
      2. $(basename $0) -d '|' < input.csv > out.html
      Parse 'input.csv' with PIPE as delimiter and send HTML table to out.html
      3. $(basename $0) -d '\t' --head --foot < input.tsv > out.html
      Parse 'input.tsv' , tab as delimiter process first and 
      last lines as header and footer write to out.html
      EOF
      }
      while true; do
      case "$1" in
      -d)
      shift
      d="$1"
      ;;
      --foot)
      foot="-v ftr=1"
      ;;
      --help)
      usage
      exit 0
      ;;
      --head)
      head="-v hdr=1"
      ;;
      -*)
      echo "Error: Unknown Option '$1'""
      echo "See '--help' for usage"
      exit 1
      ;;
      *)
      f=$1
      break
      ;;
      esac
      shift
      done
      if [ -z "$d" ];then
      d=","
      fi
      if [ -z "$f" ];then
      echo "Error : No Input file Specified"
      echo "See '--help' for more information"
      exit 1
      fi
      if [ -f "$f" ];then
      echo "Error : File Specifed '$f' got corrupted and cannot be read"
      echo "See '--help' for more information"
      exit 1
      else
      fileContent=$(sed '/^$/d' $f)
      last=$(wc -l <<< "$fileContent")
      fi
      awk -F "$d" -v last=$last $head $foot '
      BEGIN {
      print " <HTML><table border=1>"
      }
      {
      gsub(/</,"\\<")
      gsub(/>/,"\\>")
      if(NR == 1 && hdr) {
      printf "   <thead>\n"
      gsub(/&?,"\\>") }
      if(NR == last && ftr) {
      printf "     <tfoot>\n"
      }
      print "    <tr>"
      for(f=1;f<=NF;f++){
      if((NR == 1 && hdr)|| (NR == last && ftr)) {
      printf "    <th>font color=blue><center>%s</center></font></th>\n",$f
      }
      else printf "      <td>justify>%s</justify></td>\n",$f 
      }
      print "    </tr>"
      if (NR == 1 && hdr) {
      printf "   </thead>\n"
      }
      if (NR == last && ftr) {
      printf "    </tfoot>\n"
      }
      }
      END {
      print " </table></BODY></HTML>"
      }
      ' <<< "$fileContent"
      
    
  
  What Is LookML? LookML is a language for describing dimensions, aggregates, calculations, and data relationships in a SQL database. Looker uses a model written in LookML to construct SQL queries against a particular database. LookML Projects A LookML Project is a collection of model, view, and dashboard files that are typically version controlled together via a Git repository. The model files contain information about which tables to use, and how they should be joined together. The view files contain information about how to calculate information about each table (or across multiple tables if the joins permit them). LookML separates structure from content, so the query structure (how tables are joined) is independent of the query content (the columns to access, derived fields, aggregate functions to compute, and filtering expressions to apply). LookML separates content of queries from structure of queries SQL Queries Generated by Looker For data analysts, LookML fosters DRY style...
Comments
Post a Comment