0

私がこれらの2行を持っているとしましょう:

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'

または、質問が「ドットの後の最後の3文字を削除するにはどうすればよいですか?行がblah:「」で始まる場合:

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