我想用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都保留在最后一句中。
我找到了一种方法来处理一行中的最后一个字符,使用。$,但不是一句话。
答案 0 :(得分:3)
您可以使用\b
来解决字边界问题。 最后一个字母是字边界之前的字母。
这给了我们以下命令:
sed -r 's/r\b/ɻ/g' file
我在捕获组1时保存了单词边界本身,并将r
替换为ɻ
。
请注意,\b
是所谓的零宽度断言。这意味着它对它前面的模式(或它后面的模式)有影响,但不包括匹配本身的字符。感谢Lucas Trzesniewski!