A veces resulta muy útil generar un texto a partir de una consulta u otro texto. Para esto es interesante poder recorrer las diferentes líneas. En awk utilizamos una variable propia que es un puntero que apunta a la línea actual. Esta variable es NR.
Es decir, imaginemos que queremos generar unos índices de Oracle, a partir de una consulta generamos un fichero spool en el que obtenemos los CREATE y ANALYZE.
#Quitamos las líneas vacías. Este punto es muy incesante ya que Oracle es muy
#propenso a colocarnos líneas vacías. Más si vamos a trabar con NR de awk
cat /tmp/genera_indices_renombrado.txt.new|awk '
#Ahora nos situamos en la primera línea con NR y comenzamos un bucle
{q=0}{linea[NR]=$0}
END {
for(i=1;i<=NR;i=i+1)
#Si la línea comienza con CREATE entramos en la condición
else
print "exit;">>"/tmp/sqltemp"q".sql";
#pasamos al siguinte fichero
q=q+1; }
#Escribimos el último exit
{print "exit;">>"/tmp/sqltemp"q".sql"}}'
2 comentarios:
estáis seguros que publicar esto no incumple la claúsula de confidencialidad de vuestra empresa??
No lo creo.
También he aprendido a usar parámetros del comando ls que voy a seguir usando cuando salga de mi actual empresa.
Incluso le contaré a otros como usarlo.
Es lo que tiene el conocimiento, no se le pueden poner muros a lo intangible.
Publicar un comentario