sed новые строки с \n как часть текста строки
Пытается написать новую команду sed, которая вставит новые строки перед другой строкой.
код, который я пробовал и терпит неудачу:
sudo sed -i '/# onlynet=ipv4/i echo "rpcallowip='$WebInternalIP'\n";\necho "rpcallowip='$DBInternalIP'\n";\necho "rpcallowip='$StratumInternalIP'\n";' $STORAGE_ROOT/yiimp/site/web/yaamp/modules/site/coin_form.php
Новые строки нужно читать:
echo "rpcallowip=$Variable\n"; example, echo "rpcallowip=127.0.0.1\n";
приведенный выше код дает следующий результат:
echo "rpcallowip=10.0.0.3
";
Таким образом, он видит \n как другую новую строку вместо части строки.
1 ответ
Решение
Как отмечено в руководстве по GNU Sed для i\text
команда:
Последовательности Escape в тексте обрабатываются, поэтому вы должны использовать \ in text для печати одной обратной косой черты.
Следовательно, чтобы вставить буквальную последовательность \n
, вам нужно будет использовать \\n