Eu escrevi o script de shell abaixo para converter csv para HTML com código de cores para um único arquivo e está funcionando corretamente. A condição para a codificação por cores é diferente para diferentes relatórios (arquivos csv), então eu queria torná-la dinâmica em vez de codificar a condição.
Este é o meu código atual para um relatório:
cd /gk/laaz/
ipfile=$1
opfile=$2
condition=$3
awk -v cond="$condition" 'BEGIN{
FS="|"
print "<html><body></br></br>The report .</br></br></br>"
print "<table border=1 cellspacing=1 cellpadding=1>"
}
NR==1 {
# Header row
print "<tr>"
for ( i = 1; i <= NF; i++ ) {
print "<td><b>"$i"</b></td>"
}
print "</tr>"
}
NR>1 {
# Data rows
print "<tr>"
color="RED"
for ( i = 1; i < NF; i++ ) {
color="RED"
if( $1=="180817CR0003988" ) {
color="BLUE"
}
print "<td><b><FONT COLOR=\""color"\" FACE=\"verdana\" SIZE=2>"$i"</b></FONT></td>"
}
print "</tr>"
}
END {
print "</table></body></html>"
}
' $ipfile >> $opfile
fi
Nesse código, quero usar a awk
variável cond
na if
instrução, mas não está funcionando.
Este código está funcionando:
if( $1=="180817CR0003988" ) {
color="BLUE"
}
Mas isso não é:
if( cond ) {
color="BLUE"
}
Eu inicio o script com:
/gk/laaz/csv2html.sh sample.csv sample.html "\$1==\"180817CR0003988\""
cond
quando if( cond )
é executado? Por favor, edite sua pergunta e mostre o comando que você usa para iniciar o script, incluindo esta variável.