sed:在特定行中的特定字符之后插入文本

sed:在特定行中的特定字符之后插入文本

下面是我的文本文件:

example.txt
INTERFACESv4=""
INTERFACESv6=""

下面是我的代码(它在第 14 个字符后插入 IP 地址):

ip_add="192.168.1.2"
file_name="$HOME\Documents\example.txt"
sed -i "s/^\(.\{14\}\)/\1${ip_add4}/" "$file_name"

以下是我的文本文件的输出:

example.txt
INTERFACESv4="192.168.1.2"
INTERFACESv6="192.168.1.2"

如何在第一行插入文本?

答案1

最小的更改是强制命令仅在第 1 行执行:

sed -i "1s/^\(.\{14\}\)/\1${ip_add4}/" "$file_name"

如果您只想更改 的值INTERFACESv4,无论该值出现在哪一行,您可能会考虑更严格的搜索模式:

sed -i "s/INTERFACESv4=.*/INTERFACESv4=${ip_add4}/" "$file_name"

相关内容