URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8168
[ Назад ]

Исходное сообщение
"sed - ошибка при добавлении строки при работе через ssh"

Отправлено Krash , 22-Мрт-09 10:39 
Здравствуйте, может кто подскажет...

пробую использовать sed для добавления новой строки (22222) после строки, содержащей (11111).
Использую для этого конструкцию:

sed -i '/11111/a 22222' /home/user/file1.txt
- всё отлично отрабатывает, но если пробую эту конструкцию использовать через SSH

ssh user@192.168.0.1 sed -i '/11111/a 22222' /home/user/file1.txt
- получаю ошибку -
sed: -e expression #1, char 8: expected \ after `a', `c' or `i'

Не могу понять, почему при работе через ssh вылезает ошибка в синтаксисе и как её исправить...


Содержание

Сообщения в этом обсуждении
"sed - ошибка при добавлении строки при работе через ssh"
Отправлено slava.semushingmail.com , 22-Мрт-09 12:56 
>[оверквотинг удален]
>- всё отлично отрабатывает, но если пробую эту конструкцию использовать через SSH
>
>
>ssh user@192.168.0.1 sed -i '/11111/a 22222' /home/user/file1.txt
>- получаю ошибку -
>sed: -e expression #1, char 8: expected \ after `a', `c' or
>`i'
>
>Не могу понять, почему при работе через ssh вылезает ошибка в синтаксисе
>и как её исправить...

Видимо на другой стороне у вас другой sed, который более строго относится к вашему выражению. В мане, например, написано:

       a \

       текст  Добавить текст, где каждое вхождение новой строки начинается  со
              знака обратного слэша.

И в ошибке у  вас написано, что он ожиждает увидеть символ обратного слэша после команды a


"sed - ошибка при добавлении строки при работе через ssh"
Отправлено Krash , 22-Мрт-09 13:24 
>[оверквотинг удален]
>
>       a \
>
>       текст  Добавить текст, где
>каждое вхождение новой строки начинается  со
>            
>  знака обратного слэша.
>
>И в ошибке у  вас написано, что он ожиждает увидеть символ
>обратного слэша после команды a

Странно то, что если я подключаюсь по SSH на компьютер PC1 и запускаю на нём
sed -i '/11111/a 22222' /home/user/file1.txt
то всё отрабатывает нормально,
а если с компьютера PC2 выполняю
ssh PC1 sed -i ''/11111/a 22222' /home/user/file1.txt'
и sed на том же PC1 вываливается с указанной ошибкой...


"sed - ошибка при добавлении строки при работе через ssh"
Отправлено Andrey , 23-Мрт-09 05:18 
Попробуйте так:
ssh user@192.168.0.1 "sed -i '/11111/a 22222' /home/user/file1.txt"

"sed - ошибка при добавлении строки при работе через ssh"
Отправлено Krash , 23-Мрт-09 11:07 
>Попробуйте так:
>ssh user@192.168.0.1 "sed -i '/11111/a 22222' /home/user/file1.txt"

Большое спасибо, помогло, всё отрабатывает корректно.