Die folgenden works in Javascript als Übereinstimmung zu ignorieren:Spiel Wort gleiches Wort mit zusätzlichen Zeichen in sed
[^\$]fileref.*
jedoch in sed den Regex nichts übereinstimmen. Ich möchte eine variable Referenz in einer Bash-Datei ersetzen, während ich die Variablenkennung ignoriere. Die Prämisse ist, dass ich eine Standardplatzhalterdatei habe, die von einem Shellskript mit Sed-i aktualisiert werden muss. Ich kann keinen Grund finden, warum sed ein Problem mit diesem Ausdruck hat.
Sed Testbeispiel:
echo -e 'fileref=old\n./executable $fileref' | sed 's/[^\$]fileref.*/fileref=replaced/g'
Output von gnu Sed (ubuntu oder CENTOS) wenn keine Übereinstimmung gefunden wird:
fileref=old
./executable $fileref
gewünschter Ausgang:
fileref=replaced
./executable $fileref
sed arbeitet zeilenweise, es gibt kein Zeichen vor "fileref". Wenn Sie den Anfang einer Zeile anpassen möchten, verwenden Sie den Anker '^'. Abgesehen davon müssen Sie in einer Zeichenklasse nicht dem '$' entkommen. –