2015-10-07 85 views
0

我想使用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則留在最後一句。

我找到了一種方法,使用。$而不是單詞中的最後一個字符。

+2

使用'\ b'它是一個字邊界。不知道它是否適用於sed雖然 –

+1

@JorgeCampos是的,它的工作原理。 'sed's/r \ b/X/g'' –

+1

https://regex101.com/r/pK0zL6/1 –

回答

3

您可以使用\b來解決單詞邊界問題。 最後一個字母是字邊界之前的字母。

這給了我們以下命令:

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

我節省了捕獲組1邊界本身的字,並通過ɻ更換r

請注意,\b是所謂的零寬度斷言。這意味着它對前面的圖案(或後面的圖案)有影響,但不包括字符進入匹配本身。感謝Lucas Trzesniewski

+0

'\ b'是一個零寬度斷言。無需捕獲它,'\ 1'將始終是一個空字符串。 –

+0

@LucasTrzesniewski謝謝!不知道! – hek2mgl

相關問題