Supongo que escribí este script:
#print_time..
cat <file1.txt> | grep "*.log" | head -4 | tail -2 | helper | sort -r -n -k2
#helper..
while read line; do
linearr=($line)
(( time =${line[2]} - ${line[1]} +0 ))
echo ${line[o]} $time
done
dos preguntas: 1) por qué el primer script funciona como se esperaba sólo cuando lo escribo así:
cat `cat <file1.txt> | grep "*.log" | head -4 | tail -2` helper | sort -r -n -k2
2) ¿Debo usar grep "*.log"
o grep ".log"?
Qué hace el guión:
dado un archivo1, queremos leer solo 2 archivos de registro cuando el último es el número 4 de todos los archivos .log en el archivo1 dado: ejemplo:
Quiero que la primera parte del script diga: martes.log y miércoles.log y luego calcular la hora de cada tiempo de registro de cada persona cuyo nombre está en los archivos del registro:
y esto se imprimirá:
Respuesta1
Para responder a su pregunta, el problema está en el uso de grep
.
Grep toma lo que usted pone como literal, por lo que si hace grep con *.log
, buscará activamente la estrella del personaje *
seguida de .log
, por lo que no encontrará nada.
Como prueba rápida,
El comando echo hello.log | grep "*.log"
no devolverá nada
El comando echo hello.log | grep ".log"
devolverá la línea.