Adicione uma string diferente no começo de cada linha [closed]

1

Então eu tenho um texto com alguns números dentro e quero adicionar uma string antes desses números, mas não a mesma string em todas as linhas. Então, por exemplo, eu tenho:

49.950
38.654
104.138
168.171
100.586

e eu quero adicionar antes deles as palavras nick, george, james para que o resultado seja

www.abc.com 49.950
www.facebook.com 38.654
www.youtube.com 104.138
www.google.com 168.171
www.twitch.com 100.586

Como vou fazer isso?

while read -r line; do x="$line"
 if [ "$line" == "www.abc.com" ]; then
  ping -c 4 www.abc.com | tail -1 | awk '{print $4}' | cut -d '/' -f 2 > results
 fi
 if [ "$line" == "www.facebook.com" ]; then
  ping -c 4 www.facebook.com | tail -1 | awk '{print $4}' | cut -d '/' -f 2 >> results 
 fi
 if [ "$line" == "www.youtube.com" ]; then
  ping -c 4 www.youtube.com | tail -1 | awk '{print $4}' | cut -d '/' -f 2 >> results
 fi
 if [ "$line" == "www.google.com" ]; then
  ping -c 4 www.google.com | tail -1 | awk '{print $4}' | cut -d '/' -f 2 >> results
 fi
 if [ "$line" == "www.twich.com" ]; then
  ping -c 4 www.twitch.com | tail -1 | awk '{print $4}' | cut -d '/' -f 2 >>results
 fi
done <urls
    
por Georgio3 18.11.2017 / 22:21

1 resposta

2

Conclua a solução bash + awk :

while read -r url || [ -n "$url" ]; do 
    ping -c4 "$url" | awk -F'/' -v u="$url" 'END{ print u,$5 }'
done <urls > results

O conteúdo exemplar do arquivo results (como resultado do meu teste local):

www.abc.com 207.137
www.facebook.com 39.938
www.youtube.com 35.580
www.google.com 128.124
www.twitch.com 144.557
    
por 18.11.2017 / 22:37