Vim search for a pattern and if occurs delete to end of line

I am trying to search a text file for a certain pattern. If this pattern occurs then it means that the rest of the line is not needed and therefore can be deleted.

I have tried using the following commands, but so far have been unsuccessful.

:%s/{pattern}/d$

:g/{pattern}/d$

If anyone has any suggestions they would be greatly appreciated


Solution 1:

would :%s/{pattern}.*// work?

Solution 2:

Alternatively, the following also works

:g/{pattern}/normal nd$

For what you want, I would go with mirod's suggestion. What I posted is a bit more flexible and might come in handy in similar situations.

Explanation:

On each line, where pattern matches, execute the following normal mode commands 'nd$'. With the cursor at the start of the line, 'n' jumps to the pattern, and 'd$' deletes to the end of the line.