Команда Sed не работает в Mac - PullRequest
4 голосов
/ 17 марта 2012

Следующая команда sed не работает на моем компьютере-льве.

find . -type f -exec sed -i 's/user_dashboard/user/g' {} \;

Я получаю эту ошибку

sed: 1: "./vendor/assets/javascr ...": invalid command code .

Ответы [ 3 ]

21 голосов
/ 17 марта 2012

OSX-версия sed отличается от версии в большинстве систем Linux.

Она расширяет опцию -i, чтобы дать вам возможность сохранить файл с другим расширением, но требуетвведите для этого расширения.

Если вы просто хотите перезаписать файл на месте, вам нужно использовать sed -i "" ...sedCmd.... fileName, чтобы переименовать ваш файл на месте.

Согласно комментарию @JamesMcMahon, смотрите здесь полный документ для OSX / BSD sed .

Надеюсь, это поможет.

6 голосов
/ 17 марта 2012

-i, вероятно, имеет другое значение (не "на месте") в вашей версии sed. Попробуйте использовать gsed, если доступно, или замените -i на -e и используйте временный файл (и mv впоследствии) для эмуляции.

1 голос
/ 19 декабря 2013

замена текста внутри текстового файла на лету с помощью sed на mac возможна.

команда немного отличается.

с помощью: -i вы указываете расширение, в котором sed сохранит исходный файл до операции sed.

запустить команду как:

$ sed -i _bakup -E 's / THESTRING / THEGRANDSTRING' /tmp/jestinkt.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...