You can use parameter expansion:
#!/bin/bash string='. something:[12.12.12.12],[13.13.13.13]' string=$ # Delete up to the last colon. string=$ # What's not a dot or digit gets replaced by a space. for ip in $string ; do echo "IP: $ip!" done
Dies ist mein erster Beitrag, und ich schätze wirklich alle Antworten, die mir auf dieser Website bisher geholfen haben. Ich hoffe, dass dies kein überflüssiger Beitrag ist, aber ich konnte hier nichts ähnliches finden.
Ich versuche, einen String aufzuteilen, den ich aus einer Datei in separate IP-Adressen abrufen kann.
Der String wäre wie folgt:
. something:[12.12.12.12],[13.13.13.13]
Ich versuche eine String-Manipulation wie auf tldp beschrieben
expr "$string" : '\($substring\)'
Beim Versuch, einem Punkt / Punkt zu entgehen, wird er nicht gefunden:
testString=[12.12.12.12],[13.13.13.13] echo `expr "$stringZ" : '\(\\[.\..\..\..\\]\)'`
Mir ist aufgefallen, dass ich doppelt entkommen muss [und ich habe es mit dem Punkt / Punkt versucht, aber es hilft nicht.
Wie kann ich das erreichen?
Ja, ich weiß, dass dieser Regex nicht sehr gut ist, aber ich möchte, dass das Punkt / Punkt-Problem zuerst gelöst wird, bevor ich mich mehr mit dem Regex beschäftige.
Danke vielmals
You can use parameter expansion:
#!/bin/bash string='. something:[12.12.12.12],[13.13.13.13]' string=$ # Delete up to the last colon. string=$ # What's not a dot or digit gets replaced by a space. for ip in $string ; do echo "IP: $ip!" done