Ich versuche, eine Zeichenfolge in einer Datei auf dem Mac-Terminal mit sed zu suchen und zu ersetzen. Ich bin in der Lage, eine einfache Zeichenfolge zu suchen und ersetzen:Sed suchen und ersetzen auf Variable Zeichenfolge
sed -i.bak 's/HOSTS/BOASTS/g' file.txt
Aber ich versuche es auf etwas ein wenig komplizierter, im Grunde die Zeichenfolge Ich mag etwas ersetzen, wie ‚HOSTS aussieht:" 123.123.123.123, 12345 "'- Da die 123.123.123.123
eine variable IP ist, kann ich nicht genau danach suchen, also versuche ich, reguläre Ausdrücke zu verwenden, hauptsächlich das". " um anzuzeigen, dass ich nicht weiß, wie die IP-Adresse sein wird.
Ich habe folgendes ohne Glück versucht:
sed -i.bak 's/HOSTS:"., 00000"/HOSTS:"999.999.999.999, 00000"/g' file.txt
Ich schlage eine permissivere IP-Regex vor: '[0-9] \ + \. [0-9] \ + \. [0-9] \ + \. [0-9] \ + /' where ' \ + 'signalisiert 1 oder mehr des vorhergehenden Zeichens Dies funktioniert für IP-Adressen wie 4.2.2.2 (eine gültige IP). – sage