0

说我有这两条线:

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'

不会改变任何东西。

4

1 回答 1

4

你为什么不做

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

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

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

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

或者,如果您的问题是“如何删除点后的任何最后三个字符,如果该行以blah:”开头:

sed 's/^\(blah.*\)\..\{3\}$/\1/g'
于 2012-09-27T05:47:55.070 回答