Sto scrivendo uno script bash per registrare gli host remoti in una rete wireless. Ricevo gli IP remoti, ma ho bisogno di aiuto per analizzare l'output. Ecco il mio output:
$ IPS=`route -n | grep -e "10.0.0" | awk "{ print $1 }"`
$ echo $IPS
10.0.0.2
10.0.0.3
Devo ottenere questi IP e inserirli in un comando simile ... <remote_ip_1> ...
Come si può fare? Non sono riuscito a trovare questo caso nelle risposte.
Grazie
risposte:
0 per risposta № 1Potresti usare qualcosa del genere
route -n | awk "/10.0.0/ { system("command to be executed with "$1) }"
^
added missing )
Stiamo negando l'uso di grep e usando // per cercare il testo richiesto e quindi la funzione di sistema awk per eseguire un comando insieme a $ 1
0 per risposta № 2
Prova quanto segue:
route -n | grep -e "10.0.0" | awk "{ print $1 }" | xargs -L 1 your_command
Ad esempio, prova quanto segue:
route -n | grep -e "10.0.0" | awk "{ print $1 }" | xargs -L 1 echo "===>"
L'argomento -L 1 dice a xargs di eseguire un comando per IP. Vedi man xargs per maggiori dettagli