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.txtoutput -
"$(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 comandodatee reformata a data no formato mostrado pelo exemplo -
"$(grep sender iperf.txt | awk -F"] " '{print $2}')"- analisa a linha que contém a stringsendere, em seguida, divide essa linha nos caracteres], imprimindo o lado direito dos argumentos]que foram divididos. Esse resultado é o$2.