OK, je suis très novice dans le script shell bash et j’ai eu beaucoup de succès jusqu’à présent. J'utilise BASH pour résoudre un problème ...
Je souhaite transformer un nom de domaine de base: Buddies.forlife.com en | 07 | Buddies | 07 | forlife | 03 | com
Fondamentalement, j'ai besoin de compter les lettres et de les convertir en hexadécimal. Pour être clair, ne convertissez pas le nom de domaine en hex, mais la lettre compte en hex. J'ai du mal à remplacer le point "."
J'espère que vous comprenez ce que j'essaie de réaliser ...
Merci pour l'aide à l'avance!
Réponses:
Voici un moyen simple de faire cela en utilisant awk
La commande awk définit le séparateur de champ
-F '.'
sur un point. Chaque segment est considéré comme son propre champ.Nous pouvons ensuite faire référence à ces champs par
$1, $2 and $3
, utiliser la fonction intégréelength
pour obtenir le nombre de caractères pour chaque champ et utiliser un printf pour imprimer les résultats (%x
pour les nombres hexadécimaux,%s
pour les chaînes d'origine et la séparation des champs de sortie à l'aide de la commande '|' symbole, dans le format que vous avez spécifié.Le
0x
préfixe est généralement utilisé pour indiquer les nombres hexadécimaux, mais peut être changé en autre chose (ou rien) selon les besoins.la source