Команда 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