Unix - visibilidad variables de entorno en awk

 
Vista:

visibilidad variables de entorno en awk

Publicado por Juan Manuel de Pablo Ortiz (1 intervención) el 28/07/2015 16:37:44
Hola gente, disculpen la molestia estoy haciendo una rutinita para listar unos archivos, sacarles la extension, reemplazarla por otra extension, y grepear una cadena, el 90% esta hecho. Pero me estoy quedando trabado con esto; en la variable necesito colocar una variable de entorno previamente declarada, pero como awk no tiene visibilidad entre las variables de entorno me quedo en que no se donde poner el awk -v, cualquier ayuda serà infinitamente agradecida. Saludos


>reportebad.txt
>informe.log

ls -ltr *.bad | awk '{ print $9}'>>reportebad.txt


for i in $(cat reportebad.txt)
do
echo Verificando $i>>informe.log
len_file=(`expr length $i`)
len_file_sin_extension=(`expr $len_file - 4`)
j=(`echo $i | awk '{ print substr( $0, 0, PONER_ACA_LA_LONGITUD_DEL_NOMBRE_DE_ARCHIVO_SIN_EXTENSION) }'`)
ls ../Log/$j.log>>informe.log
grep ORA ../Log/$j.log>>informe.log
done
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

visibilidad variables de entorno en awk

Publicado por Tom (178 intervenciones) el 29/07/2015 09:59:51
Hay bastantes ejemplos por la red.

1
$ awk -v variable_awk="$VARIABLE_SHELL" 'blah blah blah'


Otra manera es usar el array interno de awk 'ENVIRON':

1
BEGIN { print ENVIRON["HOME"] }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 39
Ha mantenido su posición en Unix (en relación al último mes)
Gráfica de Unix

visibilidad variables de entorno en awk

Publicado por Antoni Masana (19 intervenciones) el 22/01/2016 09:56:08
Otra forma de hacerlo

1
2
3
4
5
6
7
8
9
10
11
12
>reportebad.txt
>informe.log
 
ls -ltr *.bad | awk '{ print $9}'>>reportebad.txt
 
for i in $(cat reportebad.txt)
do
   echo Verificando $i>>informe.log
   j=`echo $i | awk '{ print substr( $0, 1, length($0)-4) }'
   ls ../Log/$j.log>>informe.log
   grep ORA ../Log/$j.log>>informe.log
done
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar