#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