Unix - Variable en ciclo FOR

 
Vista:

Variable en ciclo FOR

Publicado por Moises (3 intervenciones) el 07/06/2017 00:19:42
Esta es la parte del script donde me indican cuantos archivos tengo del año 2014.

1
2
3
4
5
count=0
for x in `ls -lrt | awk '$8 == "2014"' | awk '{print $9}'`;
do count=`expr $count + 1`;
done
echo "Cantidad de Archivos 2014: $count";

No me esta funcionando colocar una variable en vez de "2014", lo estoy haciendo de esta manera:

1
2
3
4
5
6
one=2014
count=0
for x in `ls -lrt  |awk '$8 == $one'  |awk '{print $9}'`;
do count=`expr $count + 1`;
done
echo "Cantidad de Archivos 2014: $count";


tambien he trado de realizarlo de esta manera el for:

1
for x in `ls -lrt | awk '{a='$one';b='$two'}' '$8 == $a'  |awk '{print $9}'`;

pero no me genera error y tampoco realiza lo que necesito.

Tengo 3 archivos en el mismo directorio del 2014 lo cual es lo que debe imprimir el contador.
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
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

Variable en ciclo FOR

Publicado por Antoni Masana (19 intervenciones) el 08/06/2017 22:55:40
Prueba esto

1
2
3
4
5
6
one=2014
count=0
for x in `ls -lrt  | awk -v one=$one '$8 == $one'  | awk '{print $9}'`;
do count=`expr $count + 1`;
done
echo "Cantidad de Archivos 2014: $count";

Saludos.
\\//_
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

Variable en ciclo FOR

Publicado por Moises (3 intervenciones) el 08/06/2017 23:08:32
Me sale el siguiente error.

awk: syntax error near line 1
awk: bailing out near line 1
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

Variable en ciclo FOR

Publicado por Antoni Masana (19 intervenciones) el 12/06/2017 13:09:26
Ya funciona

1
2
3
4
5
6
7
one=2016
count=0
for x in `ls -lrt | nawk -v one=$one '$8 == one {print $9}' `;
do
   count=`expr $count + 1`;
done
echo "Cantidad de Archivos $one: $count";

Yo uso la nawk, si no es la que usas tu cambialo.

Saludos.
\\//_
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

Variable en ciclo FOR

Publicado por Moises (3 intervenciones) el 12/06/2017 15:42:30
Excelente, funciona correctamente, Gracias por el apoyo.

Pueden cerrar el hilo.
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