Mit sed suchen und ersetzen einer ip-Adresse in eine Datei
Versucht, dies funktioniert für eine Weile und nicht wirklich bekommen es.
Im Grunde genommen habe ich eine Datei mit einer ip-Adresse, die ändert sich mehr oder weniger auf einer täglichen basis. Die Datei enthält nur eine ip-Adresse, und das ist die, die ich bin versucht zu ersetzen, die mit meinen verrückten grepping finden Sie meine aktuelle interne ip.
Habe ich diese
#!/bin/sh
newip=$(ifconfig | grep 0xfff | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | grep -v 255)
echo $newip
sed 's/*\.*\.*\.*/"$newip"/g' log.txt > logmod.txt
aber es ist nicht abgleichen und austauschen.
Ich bin nicht vertraut mit sed und ich bin ein Anfänger mit regexps zu.
Jede Hilfe wäre genial!
Danke 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihre version von
sed
unterstützt auch erweiterte reguläre Ausdrücke (die-r
option), Sie könnte so etwas tun (was ist ähnlich, was Sie in Ihremgrep
- Anweisung). Beachten Sie auch$newip
außerhalb der Anführungszeichen zu ermöglichen, um die shell zu ersetzen.BTW ist diese Lösung noch entspricht, Saiten, die nicht vertreten IP-Adressen. Sehen diese Website unter IP-Adressen für komplexere Lösungen.
bash
tag ich nahm an, er hätte eine version von GNU sed als gut. Beachten Sie auch, dass ich speziell erwähnen, die-r
option.diese überprüft nur vier dezimalen Byte-Darstellung
so, das wird man scheitern 016.067.006.200
(noch gültigen, aber nicht vier dezimal octet Darstellung, sondern oktal)