我需要使用 bash 脚本更改文件中的变量,我认为 sed 是可行的方法,但我无法弄清楚正则表达式。
我曾尝试替换文件中的一个字符,但后来发现我所替换的内容也会改变。
您能帮忙使用 sed 替换文件中的第 3 行和第 4 行吗?
我指的是
mode blender
type kitchen
blender.net 5.5.5.5.6:33 blender blender
blender.com 5.5.5.5.5:33 blender blender
我希望能够改变整个第三行和第四行
blender.net x.x.x.x:33 blender blender
答案1
您可以指示要操作的行范围,例如sed
在您的情况下3,4
指示第 3 行至(和)第 4 行:
sed -r '3,4 s/.*/blender.net x.x.x.x:33 blender blender/' file.txt
例子:
$ cat file.txt
mode blender
type kitchen
blender.net 5.5.5.5.6:33 blender blender
blender.com 5.5.5.5.5:33 blender blender
$ sed -r '3,4 s/.*/blender.net x.x.x.x:33 blender blender/' file.txt
mode blender
type kitchen
blender.net x.x.x.x:33 blender blender
blender.net x.x.x.x:33 blender blender
这里我们在第 3 行和第 4 行执行所需的替换操作。
来自变量:
$ var=5.5.5.5.6:3
$ sed -r "3,4 s/.*/blender.net $var blender blender/" file.txt
mode blender
type kitchen
blender.net 5.5.5.5.6:3 blender blender
blender.net 5.5.5.5.6:3 blender blender