Script AWK con parámetros
Publicado por PasCuAL (1 intervención) el 02/04/2006 13:27:35
Hola
Necesito crear un script utilizando awk que tome como primer parámetro un apellido y un fichero de datos (se trata de un listado de alumnos). El objetivo es mostrar por pantalla cuántos alumnos hay con ese apellido en primero, segundo y tercer curso buscando en la lista.
Podría ser algo parecido a esto:
#!/bin/ksh
awk -F\; 'BEGIN {print "Listando..."}
($1~/'$var'/) && ($4 == 1) {tot1++}
($1~/'$var'/) && ($4 == 2) {tot2++}
($1~/'$var'/) && ($4 == 3) {tot3++}
END {
total = tot1 + tot2 + tot3
print "Apellido Primero Segundo Tercero TOTAL"
print $var" "tot1" "tot2" "tot3" "total }' $var datos.csv
Pero el problema está aquí: ($1~/'$var'/) no funciona
¿Cómo se podría hacer para que la cadena leída por consola (por ej. ALVAREZ), que se almacena en $var, se pueda comparar correctamente con el campo $1 de la lista que contiene el primer apellido de los alumnos?
¿habría que emplear algún echo por alguna parte?
URGENTE, GRACIAS
Necesito crear un script utilizando awk que tome como primer parámetro un apellido y un fichero de datos (se trata de un listado de alumnos). El objetivo es mostrar por pantalla cuántos alumnos hay con ese apellido en primero, segundo y tercer curso buscando en la lista.
Podría ser algo parecido a esto:
#!/bin/ksh
awk -F\; 'BEGIN {print "Listando..."}
($1~/'$var'/) && ($4 == 1) {tot1++}
($1~/'$var'/) && ($4 == 2) {tot2++}
($1~/'$var'/) && ($4 == 3) {tot3++}
END {
total = tot1 + tot2 + tot3
print "Apellido Primero Segundo Tercero TOTAL"
print $var" "tot1" "tot2" "tot3" "total }' $var datos.csv
Pero el problema está aquí: ($1~/'$var'/) no funciona
¿Cómo se podría hacer para que la cadena leída por consola (por ej. ALVAREZ), que se almacena en $var, se pueda comparar correctamente con el campo $1 de la lista que contiene el primer apellido de los alumnos?
¿habría que emplear algún echo por alguna parte?
URGENTE, GRACIAS
Valora esta pregunta


0