输入文件sample.txt
some log file entries
some log file entries
Hostname:MyHostName
some log file entries
some log file entries
我必须更改 MyHostname
字符串
这个命令不起作用
sed -e 's/^Hostname: .*:/Hostname:mmphate/' sample.txt
sed -e 's/^Hostname: .*$/Hostname:mmphate/' sample.txt
最佳答案
在你的情况下,你可以按字面意思来做:
sed -e 's/Hostname:MyHostName/Hostname:mmphate/g' sample.txt
或者对于以“主机名:”开头的每一行:
sed -e 's/^Hostname:.*$/Hostname:mmphate/g' sample.txt
如果您的主机名(在您的示例中为 mmphate)在一个变量中(例如 hostname_var),您可以执行:
sed -e "s/^Hostname:.*$/Hostname:$hostname_var/g" sample.txt
注意:在这种情况下请注意双引号。
关于bash - 如何使用 sed 替换特定单词后的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42946760/