Здравствуйте, может кто подскажет...
пробую использовать sed для добавления новой строки (22222) после строки, содержащей (11111).
Использую для этого конструкцию:sed -i '/11111/a 22222' /home/user/file1.txt
- всё отлично отрабатывает, но если пробую эту конструкцию использовать через SSHssh 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 вылезает ошибка в синтаксисе и как её исправить...
>[оверквотинг удален]
>- всё отлично отрабатывает, но если пробую эту конструкцию использовать через 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
>[оверквотинг удален]
>
> 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 вываливается с указанной ошибкой...
Попробуйте так:
ssh user@192.168.0.1 "sed -i '/11111/a 22222' /home/user/file1.txt"
>Попробуйте так:
>ssh user@192.168.0.1 "sed -i '/11111/a 22222' /home/user/file1.txt"Большое спасибо, помогло, всё отрабатывает корректно.