sed - не добавляет новую строку EOF и заменяет букву, не определенную

[1130126]Вышеприведенная строка выглядит, как будто она из [1130470]openssl[1130471].

pkcs12 - это подкоманда openssl. Вы, вероятно, имеете в виду:

Ваша man-страница, вероятно, также говорит вам использовать [1130472]openssl pkcs12[1130473].[1130131].

1
03.04.2015, 01:13
2 ответа

Есть какая-то особая причина использовать SED? Почему бы не ...

echo -e '\n# Provide apache user permissions to run the ban_ip.sh script as part of mod_evasive\napache ALL=NOPASSWD: /usr/local/bin/scripts-tecmint/ban_ip.sh\nDefaults:apache !requiretty' >>/etc/sudoers

первый «a 'apache' apache» сбежит прямо перед ним, что привело к вашему «^ gpache». Вы должны быть в состоянии решить эту конкретную ситуацию, просто удалив «\» после вашего «\ N». Запуск вашего комментария к новой строке, вероятно, может быть достигнуто, вставляя «\ N» после вашего «$ a \». Может быть, что-то вроде ...

sed -i -e '$a\ \n# Provide apache user permissions to run the ban_ip.sh script as part of mod_evasive\napache ALL=NOPASSWD: /usr/local/bin/scripts-tecmint/ban_ip.sh\nDefaults:apache !requiretty' /etc/sudoers

Полное раскрытие: я не тестировал ни одного из этих решений.

2
27.01.2020, 23:17

Поскольку характер \ A Ctrl + G - вам не нужно избежать символа после \ N

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

sed -i -e '$a\
\
# Provide apache user permissions to run the ban_ip.sh script as part of mod_evasive\
apache ALL=NOPASSWD: /usr/local/bin/scripts-tecmint/ban_ip.sh\
Defaults:apache !requiretty' /etc/sudoers
3
27.01.2020, 23:17

Теги

Похожие вопросы