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.