Próbuję dowiedzieć się, jak wykonać następujące czynności z sed:Formatowanie IP z sed
Mam listę adresów IPv4 i staram się uczynić je wszystkie jednolite na wyświetlaczu. Na przykład: 1.2.4.32
będzie 001.002.004.032
. 10.125.62.1
będzie 010.125.062.001
.
Próbuję użyć sed, aby to zrobić, ponieważ tego właśnie się uczę właśnie teraz.
Mam te dwa, które przyjmą jedną lub dwie cyfry i dopiszą zera na początku.
sed 's/\<[0-9][0-9]\>/0&/g' file
sed 's/\<[0-9]\>/00&/g' file
Ale to ma bardziej praktyczny problem, ponieważ mój plik wejściowy będzie miał pojedyncze lub podwójne cyfry w innych miejscach poza adresem IP. Przykład:
host-1 1.2.3.32
Więc potrzebny jest sposób na to, aby spojrzeć na pełny adres IP, co uważałem, że można osiągnąć za pomocą tej
sed 's/\.\<[0-9]\>/00&/g'
ale nie tylko, że ignorowanie przypadek 1.something.something.something
, ale także dołącza 00
na końcu 3 oktetu z jakiegoś powodu. Plik
echo "10.10.88.5" | sed 's/\.\<[0-9]\>/00&/g'
10.10.8800.5
Próbka:
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
Czy zawartość pliku ma wzór? Opublikuj fragment z pliku – sjsam
Zgodnie z życzeniem. plik –
dziękuje, To sprawia, że pytanie jest bardziej zrozumiałe :) – sjsam