sed删除最后4个字符

时间:2012-09-27 05:43:11

标签: regex sed

说我有这两行:

blah:20030717.abc
blah:20040714

使用sed,我如何才能在开始和结束时匹配 - ^blah.*abc$ - 并删除最后4个字符?

我试过

sed 's/\(^blah.*\)\(.\{4\}$\)/\1/g'

但是也会删除另一行的4个字符。

blah:20030717
blah:2004

sed 's/\(^blah.*abc$\)\(.\{4\}$\)/\1/g'

不会改变任何事情。

1 个答案:

答案 0 :(得分:4)

为什么不做你

 sed 's/\.abc$//g' 

因为您已经知道要删除哪些 4个字符?

或者,如果您只想在以blah:开头的行中执行此操作,

sed 's/^\(blah.*\)\.abc$/\1/g'

或者,如果您的问题是"如果该行以blah:"

开头,如何删除点后的最后三个字符?
sed 's/^\(blah.*\)\..\{3\}$/\1/g'