Прелесть Linux / Unix в том, что обычно существует несколько способов чего-то добиться. В случае с оператором существует как минимум четыре различных способа извлечь имя POP-сервера из файла:
grep POP3_SERVER_NAME installation.sh | cut -d '=' -f2
grep POP3_SERVER_NAME installation.sh | awk '{print $ 3}'
grep POP3_SERVER_NAME installation.sh | sed 's /.*= //'
sed -n 's /^.* POP3_SERVER_NAME = // p' installation.sh
Вы можете использовать другой символ для разделителя, как указывали другие, например:
sed -i 's!pattern!replacement!g' /path/to/file
Но если нет удобного символа для использования вместо /
в качестве разделителя, вы также можете избежать любых встроенных символов-разделителей в ваших pattern
и replacement
, поставив перед каждым из них обратную косую черту \
. Вот пример использования /
в качестве разделителя, который заменяет /some/path
на../some/replacement
:
sed -i 's/\/some\/path/..\/some\/replacement/g'
Тем не менее, людям труднее читать, поэтому, как правило, если это вообще возможно, лучше использовать другой символ для разделителя, подобного этому:
sed -i 's!/some/path!../some/replacement!g'