使用sed在模式后查找模式和编辑文本?

时间:2011-06-07 12:50:39

标签: shell scripting sed

我有一个由一些文本组成的文件,我感兴趣的是这个特定的行: BUILD = 0 其中BUILD的价值不断变化。

我需要帮助模式搜索“BUILD =”并用我的新字符串替换此模式之后的任何内容。

例如: BUILD = test

此外,我希望在原始文件上进行此编辑,而不是重定向。 如何使用sed完成这项工作?

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

sed -i 's/\(BUILD = \)\(.*\)/\1hello/g' test.txt

注意:-i和“就地”一样

答案 1 :(得分:1)

这是我提出的一些“类似案例”的解决方案:

$ echo -e "0123\nBUILD = 2" | sed '/^BUILD =/ { s/0/a/; s/1/b/; s/2/c/; s/3/d/ }'
0123
BUILD = c

因此解决问题的命令的确切版本是:

sed -i.bak '/^BUILD =/ { s/0/a/; s/1/b/; s/2/c/; s/3/d/ }' somefile.txt

-i.bak选项允许使用备份编辑到.bak扩展名的文件。