Sed Fehler: schlechtes Flag im Ersatzbefehl: 'U'

8

Ich bin neu im Bash-Skript und versuche, einige Wörter in meiner Datei mit sed zu ersetzen. Im Folgenden ist die Bash, die ich in meinem Skript verwende:

%Vor%

Und ich habe eine Fehlermeldung bekommen, die sagt: bad flag in substitute command: 'U' . Ich verwende doppelte Anführungszeichen, weil ich Variablen einfügen muss.

Meine Umgebung ist Mac.

======================================

1.Turns out Ich habe vergessen, ein Leerzeichen zwischen ersetzen String und Dateiname zu lassen. Was dazu führte, dass das Ergebnis immer angezeigt wird: bad flag in substitute command: '~' . Es funktioniert jetzt.

2.Der Grund ist, dass ich MD5=$(md5 path) verwendet habe, um einen MD5-Wert zu erstellen, der das Ergebnis von MD5 (path) ***** erhält, und der Pfad enthält / , wodurch die Regex unterbrochen wird. Nach dem Ändern von MD5=$(md5 -q path) wird es in Ordnung sein.

    
JasmineOT 16.09.2015, 13:38
quelle

1 Antwort

10

Sehr wahrscheinlich enthält Ihre $NEWNAME Variable einen Schrägstrich, der als Regex-Begrenzer in sed verwendet wird. Probieren Sie sed mit einem alternativen Begrenzer z. ~ :

%Vor%     
anubhava 16.09.2015, 13:41
quelle

Tags und Links