Der sed-Befehl zeigt den Fehler "undefined label" unter Mac OS X an

Der Befehl sed zeigt unter Mac OS X den Fehler „undefined label“ an

Sehen Sie sich das folgende Szenario an, erstellen Sie eine Datei, fügen Sie Inhalte hinzu, suchen und ersetzen Sie sie.

$ touch testing.txt
$ echo "this is example.com" > testing.txt
$ cat testing.txt
this is example.com
$ sed -i 's/example/google/g' testing.txt
sed: 1: "testing.txt": undefined label 'esting.txt'

Dieser Befehlsed -i 's/example/google/g' testing.txt funktioniert unter Linux ordnungsgemäß, zeigt jedoch unter Mac OS X die Fehlermeldung "undefined label" an.

Lösung

Der Befehlsed ist in Mac OS X etwas anders. Für die Option "-i" war ein Parameter erforderlich, um anzugeben, welche Erweiterung für die Sicherungsdatei hinzugefügt werden soll.

Um das Problem zu beheben, fügen Sie einfach eine Erweiterung für die Sicherungsdatei hinzu, z. B. ".bak":

$ sed -i '.bak' 's/example/google/g' testing.txt
$ ls -ls
8 -rw-r--r--  1 example  staff  19 Aug  2 14:22 testing.txt
8 -rw-r--r--  1 example  staff  19 Aug  2 14:21 testing.txt.bak
$ cat testing.txt
this is google.com
$ cat testing.txt.bak
this is example.com