Não é a maneira mais simples de fazer isso, mas, esperamos, mostra "uma maneira" de fazer isso:
$ printf "%s%s\n" \
"$(TZ=CEST date -d "$(head -1 iperf.txt)" "+%y-%m-%d %H:%M:%S")" \
"$(grep sender iperf.txt | awk -F"] " '{print $2}')"
18-08-15 19:35:11 0.00-10.00 sec 3.60 GBytes 3.09 Gbits/sec 1467 sender
Isso funciona da seguinte maneira:
-
printf "%s%s\n"
- imprime duas sequências que analisaremos emiperf.txt
output -
"$(TZ=CEST date -d "$(head -1 iperf.txt)" "+%y-%m-%d %H:%M:%S")"
- analisa a primeira linha deiperf.txt
(head -1
) e passa isso para o comandodate
e reformata a data no formato mostrado pelo exemplo -
"$(grep sender iperf.txt | awk -F"] " '{print $2}')"
- analisa a linha que contém a stringsender
e, em seguida, divide essa linha nos caracteres]
, imprimindo o lado direito dos argumentos]
que foram divididos. Esse resultado é o$2
.