如何正确使用sed将文本插入到使用变量的文件中?

如何正确使用sed将文本插入到使用变量的文件中?,sed,Sed,如何正确使用sed将文本插入到使用变量的文件中 MYNIC_IP=`ip addr show eth0 | grep eth0 | awk '{ print $2; }' | sed 's/\/.*$//'` 好的,很酷 echo $MYNIC_IP eth0: 172.31.43.190 sudo sed -i -e '1i'$MYNIC_IP /usr/share/nginx/html/index.html 这将导致部分变量被添加。。。只需eth0:您需要引用它,以便sed看到包含空格

如何正确使用sed将文本插入到使用变量的文件中

MYNIC_IP=`ip addr show eth0 | grep eth0 | awk '{ print $2; }' | sed 's/\/.*$//'`
好的,很酷

echo $MYNIC_IP
eth0: 172.31.43.190

sudo sed -i -e '1i'$MYNIC_IP /usr/share/nginx/html/index.html

这将导致部分变量被添加。。。只需eth0:

您需要引用它,以便sed看到包含空格的单个字符串:

sed -i -e "1i\\
$MYNIC_IP"

有了双引号,您仍然可以在内部使用变量,它们将被展开。

澄清,变量以空格结尾。不确定如何修复分隔符以便添加整个变量?尝试了。与变量中的:有关的内容。sed:-e表达式#1,char 12:未知命令:`.@JBalrog:试试我现在写的。在
i
命令中需要换行符。我甚至理解这个问题都有问题。你们中的一位能否编辑这个问题,以便更清楚地了解要实现什么目标?尝试创建一对Q/a,这对其他用户也很有用。前半部分是否只显示变量是如何填充的,而实际问题是如何将其前置到index.html中?@Yunnosch我相信我已经很清楚了。我陈述了一个变量。这个变量有一个有趣的问题,变量中有一个:。正如我所说的,当我使用SED时,echo$MYNIC_IP eth0:172.31.43.190>会由于一个错误而退出流。我意识到这是一种需要的逃避,但我似乎无法正确设置逃避的格式,因此请求帮助。我需要在SED中使用这个奇怪的变量。