Estoy tratando de escribir un script para extraer registros entre dos marcas de tiempo usando awk.
Así que esto funciona:
awk '$0 >= "07-Nov-2021 13:40:02.124" && $0 <= "07-Nov-2021 13:43:08.124"' websniffer.logPero cuando lo uso dentro de un script bash, estoy luchando para que funcione. Aquí está mi secuencia de comandos y error de muestra mínimos:
#!/bin/bash fromtime=$1 totime=$2 nameoffile="websniffer.log" awk -v fromtimestamp=$fromtime -v totimestamp=$totime -v filenm=$nameoffile '$0 >= "$fromtimestamp" && $0 <= "$totimestamp"}' $filenmAhora, cuando ejecuto este script por:
#terminal@root$ ./samplescript.sh "07-Nov-2021 13:40:02.124" "07-Nov-2021 13:43:08.124"Entiendo esto :
./samplescript.sh "07-Nov-2021 13:40:02.124" "07-Nov-2021 13:43:08.124"./samplescript.sh "07-Nov-2021 13:40:02.124" "07-Nov-2021 13:43:08.124" ./samplescript.sh: line 6: 2190 Segmentation fault awk -v fromtimestamp=$fromtime -v totimestamp=$totime -v filenm=$nameoffile '$0 >= "$fromtimestamp" && $0 <= "$totimestamp"}' $filenm¿Puede alguien ayudarme a hacer que esto funcione?
Hay un par de cosas:
#!/bin/bash fromtime=$1 totime=$2 nameoffile="websniffer.log" awk -v fromtimestamp="$fromtime" -v totimestamp="$totime" '$0 >= fromtimestamp && $0 <= totimestamp' "$nameoffile"Debe citar las variables de shell que pasa a awk (tienen espacios en blanco) y no es necesario crear filenm y pasarlo a awk ya que no lo está usando dentro del script awk.