twfx
twfx

Reputation: 1694

Replace a line containing certain characters using vi

I'd like to replace all line containining "CreateTime=xxxxx" with "CreateTime=2012-01-04 00:00". May I know how should I do it with vim?

[m18]
Attendees=38230,92242,97553
Duration=2
CreateTime=2012-01-09 22:00

[m20]
Attendees=52000,50521,34025
Duration=2
CreateTime=2012-01-09 00:00

[m22]
Attendees=95892,23689
Duration=2
CreateTime=2012-01-08 17:00

Upvotes: 1

Views: 80

Answers (1)

Dan Lowe
Dan Lowe

Reputation: 56687

You can use the global substitute operator for this.

:%s/CreateTime=.*$/CreateTime=2012-01-04 00:00/g

You can read the help for the s command from within Vim using:

:help :s

You can read about patterns with :help pattern-overview.

As requested, a bit more about the regular expression match (CreateTime=.*$):

CreateTime=  # this part is just a string
.            # "." matches any character
*            # "*" modifies the "." to mean "0 or more" of any character
$            # "$" means "end of line"

Taken together, it matches CreateTime= followed by any series of characters, consuming the rest of the line.

Upvotes: 3

Related Questions