Parece que no puedo obtener el comando awk para obtener la segunda columna de datos.
Código Bash:
filter_data=$(awk "{if(/$filter:/) print $2}" < scanresults_temp.txt)
printf "$filter_data \n"
La variable $ filter es el valor de Descarga o Carga que se pasa al script de shell. Así que awk usa el término Descargar o Cargar para buscar la fila adecuada.
Los contenidos del archivo son:
Testing download speed................................................................................
Download: 51.13 Mbit/s
Testing upload speed................................................................................................
Upload: 57.38 Mbit/s
Estoy tratando de obtener solo los números y no otra cosa, por ejemplo, 51.13
y 57.38
.
awk
'sprintf
Respuestas:
Debe utilizar comillas simples para el cuerpo del programa awk para que el shell no expanda las variables de awk. Así es como debe pasar una variable de shell a awk:
fuente
Una forma alternativa es dejar que Shell ponga variables en
awk
el entorno de s mediante la asignación de procedimiento (temporal):Tenga en cuenta que las comillas variables no son necesarias al realizar asignaciones en shell
fuente