sed - 匹配搜索中的第一个匹配项

时间:2014-01-22 18:56:25

标签: search sed

我正在编写一个shell脚本来修改文件,我在其中有一行代码:

sed s / here \(。* \ n \)/ gone \ 1 / g

不幸的是,搜索似乎与最长的字符串匹配(即,它一直到最后一个\ n - 因此只给我一个替换)但我希望它只匹配到第一个\ n它找到(所以我可以在每一行得到替换)。

这可能吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您希望名为non-greedy (or lazy)的功能匹配。遗憾的是sed没有提供此类功能。要模拟它,您需要搜索任何 分隔符匹配直到分隔符匹配。像这样:

s/here \([^\n]*\n\)/gone \1/g