[英]How to run a command in sed in Linux?
sed -i 's/1.1.1.1/ `hostname -I | cut -f1 -d " "`/g' file.txt
无法在给定文件中使用 sed 命令覆盖 IP 地址。 如何使用 sed 命令运行此 ( hostname -I | cut -f1 -d " "
) 命令?
这可能对您有用(GNU sed):
sed -i '/1\.1\.1\.1/{s//$(hostname -I | cut -f1 -d " ")/;s/.*/echo "&"/e}' file
将命令放在$(...)
之间,然后使用替换命令的评估标志回显该行。
只需使用一个变量。
hn=$(hostname -I | cut -f1 -d" ") && sed -i "s/1\.1\.1\.1/$hn/g" file
Sed 的e
和s///e
作用于整个模式空间,所以麻烦多于其价值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.