我希望能够替换文件中的一行文本,但不确定如何使用sed。
例如,如果我有一个属性文件:
food.type=apple
food.color=red
我希望能够搜索该类别(即food.type
)并替换=
之后的文字。
即
food.type=banana
food.color=yellow
非常感谢任何帮助。谢谢!
编辑:对不起,请允许我补充一些额外的说明。如果我不知道food.type
之后的文本是什么,该怎么办?它可以是任何东西,“苹果”,“香蕉”等......是否仍然可以在=
之后搜索和替换文本?
答案 0 :(得分:2)
可能会有更优雅的东西,但你会这样做:
sed '/^food.type/ s/=.*$/=banana/'
那将找到一条以food.type开头的行,然后用= banana替换一个等于及其后的任何内容。
答案 1 :(得分:1)
sed 's/food\.type=.*/food.type=banana/'
答案 2 :(得分:1)
回去参考
sed 's/\(food.type=\).*/\1banana/'
答案 3 :(得分:1)
现在不只是"food.type"
(并且更安全:)):
$ sed -n 's/\([a-zA-Z]*\.[a-zA-Z]*=\).*$/\1banana/' filename