OK, więc jestem wyjątkowo nowy w skryptowaniu powłoki bash i do tej pory odnoszę sukcesy. Korzystam z BASH, aby naprawić problem ...
Chcę zmienić podstawową nazwę domeny: Buddies.forlife.com w | 07 | Buddies | 07 | forlife | 03 | com
Zasadniczo muszę go policzyć i przekonwertować na heks. Żeby było jasne, nie przekształcaj nazwy domeny na szesnastkową, ale liczbę liter na szesnastkową. Z trudem zastępuję kropkę „”.
Mam nadzieję, że rozumiesz, co próbuję osiągnąć ...
Z góry dziękuję za pomoc!
Odpowiedzi:
Oto prosty sposób, aby to zrobić za pomocą awk
Komenda awk ustawia separator pól
-F '.'
na kropkę, więc każdy segment jest uważany za własne pole.Następnie możemy odwołać się do tych pól
$1, $2 and $3
, użyć funkcji wbudowanej,length
aby uzyskać liczbę znaków dla każdego pola, i użyć printf do wydrukowania wyników (%x
dla liczb szesnastkowych,%s
dla oryginalnych ciągów i separacji pól wyjściowych za pomocą „|” symbol w określonym formacie.0x
Prefiks jest zazwyczaj używany do wskazania liczby HEX, ale można zmienić na coś innego (lub nic), ile potrzeba.źródło