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:
je veux savoir d'ou viennent les 10 premières ip et donc enregistrer à leur suite le pays d'origine dans un nouveau fichier250 --- 120.36.241.147
128 --- 83.194.244.36
54 --- 92.149.174.27
...
pour obtenir un fichier du type:
la commande qui me permet de faire cela est:250 --- 120.36.241.147 - USA
128 --- 83.194.244.36 - french
54 --- 92.149.174.27 - china
...
je me retrouve maintenant avec un autre fichier reportCurl contenant le résultat en json des appels à l'api de geolocalisation
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
de cette forme:
je ne suis pas loin mais la je ne sais plus trop s'il faut faire dans awk ou faire appel à sed, à grep ...{"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}
...
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 ?
Partager