bonjour
je bute un peu sur la complexité de la commande awk, peut être y a t il parmis vous des gens chevronnés sur le sujet
voila mon pb
j'ai un fichier que l'on va nommer IP_TABLE de cette forme:
250 --- 120.36.241.147
128 --- 83.194.244.36
54 --- 92.149.174.27
...
je veux savoir d'ou viennent les 10 premières ip et donc enregistrer à leur suite le pays d'origine dans un nouveau fichier
pour obtenir un fichier du type:
250 --- 120.36.241.147 - USA
128 --- 83.194.244.36 - french
54 --- 92.149.174.27 - china
...
la commande qui me permet de faire cela est:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
awk -F "--- " 'NR<10 { 
   system ("curl freegeoip.net/json/"$2); 
   wait 1
}' IP_TABLE > reportCurl
je me retrouve maintenant avec un autre fichier reportCurl contenant le résultat en json des appels à l'api de geolocalisation
de cette forme:
{"ip":"218.18.251.209","country_code":"CN","country_name":"China","region_code":"44","region_name":"Guangdong","city":"Guangzhou","zip_code":"","time_zone":"Asia/Shanghai","latitude":23.1167,"longitude":113.25,"metro_code":0}
{"ip":"119.9.76.66","country_code":"HK","country_name":"Hong Kong","region_code":"","region_name":"","city":"","zip_code":"","time_zone":"Asia/Hong_Kong","latitude":22.25,"longitude":114.1667,"metro_code":0}
...
je ne suis pas loin mais la je ne sais plus trop s'il faut faire dans awk ou faire appel à sed, à grep ...
il doit y avoir plusieurs façons de faire mais si je pouvais simplifier en n'utilisant que awk je pense que ce serait pas mal ?
comment feriez vous ?