【发布时间】:2011-06-07 12:50:39
【问题描述】:
我有一个包含一些文本的文件,我感兴趣的是这一行: 构建 = 0 BUILD 的值不断变化的地方。
我在模式搜索“BUILD =”方面需要帮助,并用我的新字符串替换此模式之后的任何内容。
例如: 构建 = 测试
而且我还希望在原始文件上进行这种编辑并且不进行重定向。 这究竟是如何使用 sed 完成的?
提前感谢您的帮助。
【问题讨论】:
我有一个包含一些文本的文件,我感兴趣的是这一行: 构建 = 0 BUILD 的值不断变化的地方。
我在模式搜索“BUILD =”方面需要帮助,并用我的新字符串替换此模式之后的任何内容。
例如: 构建 = 测试
而且我还希望在原始文件上进行这种编辑并且不进行重定向。 这究竟是如何使用 sed 完成的?
提前感谢您的帮助。
【问题讨论】:
sed -i 's/\(BUILD = \)\(.*\)/\1hello/g' test.txt
注意:-i 与“就地”一样
【讨论】:
这是我想出的一些“类似案例”的解决方案:
$ 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 扩展名的文件。
【讨论】: