2013-04-29 2 views
2

Мне нужно запустить sed -e 'command' -e 'command' file.txt, но я получаю эту ошибку на mac: sed: -e: No such file or directory. Любая идея, как это исправить?Более одного '-e' в sed на OSX

+0

Работает хорошо здесь - вы можете показать точная команда, которую вы используете? –

+0

sed -i -e "s /\.$ REGIONID \ ./ \ ./" -e "/\.$NONREGIONID\./d" application.conf – Michael

+3

Вы не можете использовать '-i' без расширения, и ваш второй '-e' не начинается с команды. –

ответ

3

отлично работает с моим sed:

$ echo ax | sed -e 's/a/b/' -e 's/x/y/' 
by 
$ uname -a 
Darwin Equinox.local 12.3.0 Darwin Kernel Version 12.3.0: Sun Jan 6 22:37:10 PST 2013; root:xnu-2050.22.13~1/RELEASE_X86_64 x86_64 
$ which sed 
/usr/bin/sed 

Таким образом, проблема должна быть в другом месте. Судя по вашей команде дается в комментариях, я хотел бы попробовать передавая '' аргумент в -i опции:

$ sed -i '' -e "s/\.$REGIONID\./\./" -e "/\.$NONREGIONID\./d" application.conf 

С оговоркой, описанной в справочной странице:

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

+0

да' ''' после того, как 'i' исправил ее. благодаря! – Michael