sed ошибка в FreeBSD и Solaris (sed ошибка в FreeBSD и Solaris)
Модератор: Модераторы разделов
-
socr
- Сообщения: 35
- ОС: Ubuntu Linux
sed ошибка в FreeBSD и Solaris
#!/bin/sh
sed '/ name/ c\ first name' $1 >> tmp
mv tmp $1
rm -f tmp
вызывает ошибку
sed: 1: "/name/ c\first name": extra characters after \ at the end of c command
Может кто объяснит в чём проблема и как исправить??
Заранее спасибо
sed '/ name/ c\ first name' $1 >> tmp
mv tmp $1
rm -f tmp
вызывает ошибку
sed: 1: "/name/ c\first name": extra characters after \ at the end of c command
Может кто объяснит в чём проблема и как исправить??
Заранее спасибо
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
-
socr
- Сообщения: 35
- ОС: Ubuntu Linux
Re: sed ошибка в FreeBSD и Solaris
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: sed ошибка в FreeBSD и Solaris
Код: Выделить всё
diesel@indie:~$ echo -ne "name\nsmth here\n" | ./tmp1.sh
first name
smth here
diesel@indie:~$ cat tmp1.sh
#!/bin/bash
sed -e '/name/c\
first name'там в man'е new line есть ....она судя по всему должна быть
-
socr
- Сообщения: 35
- ОС: Ubuntu Linux
Re: sed ошибка в FreeBSD и Solaris
diesel писал(а): ↑10.11.2008 12:16Код: Выделить всё
diesel@indie:~$ echo -ne "name\nsmth here\n" | ./tmp1.sh first name smth here diesel@indie:~$ cat tmp1.sh #!/bin/bash sed -e '/name/c\ first name'
там в man'е new line есть ....она судя по всему должна быть
Тогда глупый вопрос: А почему в UBUNTU всё работает?
И как тогда такой sed (с с параметром запустить с терминала)?
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: sed ошибка в FreeBSD и Solaris
socr писал(а): ↑10.11.2008 12:19diesel писал(а): ↑10.11.2008 12:16Код: Выделить всё
diesel@indie:~$ echo -ne "name\nsmth here\n" | ./tmp1.sh first name smth here diesel@indie:~$ cat tmp1.sh #!/bin/bash sed -e '/name/c\ first name'
там в man'е new line есть ....она судя по всему должна быть
Тогда глупый вопрос: А почему в UBUNTU всё работает?
в убунту другая реализация sed'а, в деталях они наверное отличаются, у мну тоже не работает твой убунтовский вариант на Маке. если ты сделаешь проще: sed -e '/ name/s/^.*$/first name/g' скорее всего будет работать одинаково везде, или же с новой строчки будешь писать - тоже вроде работает.
-
socr
- Сообщения: 35
- ОС: Ubuntu Linux
Re: sed ошибка в FreeBSD и Solaris
diesel писал(а): ↑10.11.2008 12:23socr писал(а): ↑10.11.2008 12:19diesel писал(а): ↑10.11.2008 12:16Код: Выделить всё
diesel@indie:~$ echo -ne "name\nsmth here\n" | ./tmp1.sh first name smth here diesel@indie:~$ cat tmp1.sh #!/bin/bash sed -e '/name/c\ first name'
там в man'е new line есть ....она судя по всему должна быть
Тогда глупый вопрос: А почему в UBUNTU всё работает?
в убунту другая реализация sed'а, в деталях они наверное отличаются, у мну тоже не работает твой убунтовский вариант на Маке. если ты сделаешь проще: sed -e '/ name/s/^.*$/first name/g' скорее всего будет работать одинаково везде, или же с новой строчки будешь писать - тоже вроде работает.
Тогда подскажите пожалуйста как в терминале писать с новой строки?
Кстате на Маке у меня работает
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: sed ошибка в FreeBSD и Solaris
да просто
sed -e '/ name/c\<вот тут жмешь ентер>
>first name' filename
а у меня так же как ты показал:
Код: Выделить всё
diesel@indie:~$ echo -ne "name\nsmth here\n" | sed -e '/name/c\ first name'
sed: 1: "/name/c\ first name\n": extra characters after \ at the end of c command
diesel@indie:~$ uname -a
Darwin indie.local 9.5.0 Darwin Kernel Version 9.5.0: Wed Sep 3 11:29:43 PDT 2008; root:xnu-1228.7.58~1/RELEASE_I386 i386-
socr
- Сообщения: 35
- ОС: Ubuntu Linux
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: sed ошибка в FreeBSD и Solaris
10.5.5
Код: Выделить всё
diesel@indie:~$ echo -ne "name\nsmth here\n" | sed -e '/name/c\
> fist name'
fist name
smth hereвот прямо с терминала скопировал
-
socr
- Сообщения: 35
- ОС: Ubuntu Linux
Re: sed ошибка в FreeBSD и Solaris
diesel писал(а): ↑10.11.2008 12:38
10.5.5
Код: Выделить всё
diesel@indie:~$ echo -ne "name\nsmth here\n" | sed -e '/name/c\ > fist name' fist name smth here
вот прямо с терминала скопировал
у меня не выдаёт command c expects \ followed by text
-
socr
- Сообщения: 35
- ОС: Ubuntu Linux
Re: sed ошибка в FreeBSD и Solaris
socr писал(а): ↑10.11.2008 12:44diesel писал(а): ↑10.11.2008 12:38
10.5.5
Код: Выделить всё
diesel@indie:~$ echo -ne "name\nsmth here\n" | sed -e '/name/c\ > fist name' fist name smth here
вот прямо с терминала скопировал
у меня не выдаёт command c expects \ followed by text
Diesel спасибо, нашёл как запустить, в БСД он ещё немного отличается
Только вот интересно почему в запуск различается, а описание одинаковое