команда sed обнаруживает ошибку «неопределенная метка» в Mac OS X

Команда sed отображает ошибку «неопределенная метка» в Mac OS X

Посмотрите следующий сценарий, создайте файл, добавьте контент, найдите и замените его.

$ 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'

Эта командаsed -i 's/example/google/g' testing.txt работает правильно в Linux, но выдает сообщение об ошибке «undefined label» в Mac OS X.

Решение

Командаsed немного отличается в Mac OS X, опция «-i» требовала параметра, указывающего, какое расширение добавить для файла резервной копии.

Чтобы это исправить, просто добавьте расширение для файла резервной копии, например, «.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