2012-07-16 4 views
1

J'écris un élément xml dans bash. J'ai besoin de remplacer certaines chaînes qui commencent par des nombres en quelque chose qui commence par un caractère, c'est donc une balise XML valide (rappelez-vous que les balises xml ne peuvent pas démarrer avec des caractères alphanumériques).Comment vérifier si le premier caractère d'une chaîne est un nombre dans bash?

Par exemple,

str = 192.16.76.52,1001 

qui n'est pas une balise XML valide, ce que je ne peut pas faire

<192.16.76.52,1001> 
..... 
</192.16.76.52,1001> 

Alors, je prévois de détecter si elle est un numéro et le remplacer par quelque chose comme

IP192.16.76.52 

Je sais que je peux le faire avec IFS, mais il pourrait prendre beaucoup de temps et de code supplémentaire.

Puisque vous connaissez le problème principal, n'hésitez pas à laisser des commentaires ou des suggestions.

Merci

+0

Ce n'est probablement pas une bonne idée d'utiliser '.' dans le nom de l'élément. – chepner

+0

oh je vois .... Je ne pense pas que je vais jamais analyser le fichier xml .... mais pensez-vous, cela affectera le format de fichier XML? – howtechstuffworks

+0

Oui, je l'ai enlevé, aussi j'ai besoin de supprimer la virgule ici .... – howtechstuffworks

Répondre

6

L'ERS de = dans [[ prend un modèle glob.

$ [[ 123 = [0-9]* ]] ; echo $? 
0 
$ [[ foo = [0-9]* ]] ; echo $? 
1 
Questions connexes