更改字符串的最后一个字母

时间:2015-10-07 21:24:26

标签: regex sed

我想用sed来改变文本中字符串的最后一个字母。例如,如果我有

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed felis maximus, mattis purus non, accumsan nunc.

我想用ɻ代替所有最后的r:

Lorem ipsum doloɻ sit amet, consectetuɻ adipiscing elit. In sed felis maximus, mattis purus non, accumsan nunc.

请注意,每个单词中的非最后一个r都保留在最后一句中。

我找到了一种方法来处理一行中的最后一个字符,使用。$,但不是一句话。

1 个答案:

答案 0 :(得分:3)

您可以使用\b来解决字边界问题。 最后一个字母是字边界之前的字母。

这给了我们以下命令:

sed -r 's/r\b/ɻ/g' file

我在捕获组1时保存了单词边界本身,并将r替换为ɻ

请注意,\b是所谓的零宽度断言。这意味着它对它前面的模式(或它后面的模式)有影响,但不包括匹配本身的字符。感谢Lucas Trzesniewski