J'essaie de comprendre comment faire ce qui suit avec sed :
J'ai une liste d'adresses IPv4 et j'essaie de les rendre toutes uniformes dans l'affichage. Donc, par exemple : 1.2.4.32
serait 001.002.004.032
. 10.125.62.1
serait 010.125.062.001
.
J'essaie d'utiliser sed pour le faire parce que c'est ce que j'apprends en ce moment.
J'ai ces deux-là, qui prennent n'importe quel nombre à un ou deux chiffres et ajoutent des zéros au début.
sed 's/\<[0-9][0-9]\>/0&/g' file
sed 's/\<[0-9]\>/00&/g' file
Mais cela pose un problème plus pratique dans la mesure où mon fichier d'entrée contiendra des chiffres à un ou deux chiffres à d'autres endroits que l'adresse IP. Exemple :
host-1 1.2.3.32
J'ai donc besoin d'un moyen pour qu'il recherche l'adresse IP complète, ce que je pensais pouvoir réaliser de la manière suivante
sed 's/\.\<[0-9]\>/00&/g'
mais non seulement cela ignore le cas de 1.something.something.something
mais il ajoute également l'élément 00
à la fin du 3ème octet pour une raison quelconque.
echo "10.10.88.5" | sed 's/\.\<[0-9]\>/00&/g'
10.10.8800.5
Un exemple de fichier :
Jumpstart Server jumo 10.20.5.126
Jumpstart Server acob 10.20.5.168
NW1 H17 Node cluster 10.10.161.87
NW1 H17 Node-1 10.10.161.8
NW1 H17 Node-2 10.10.161.9
ts-nw1 10.10.8.6