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