First of all, from the command line, run
kpsewhich plain.bst
to know where the file plain.bst is. Its path should be TEXMF/bibtex/bst/base/.
Now copy plain.bst in the directory where your .tex file is, and rename it to myplain.bst.
Then open myplain.bst in your editor and search for the lines:
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
Replace them with the following
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
and save the file.
Now in your document, replace
\bibliographystyle{plain}
with
\bibliographystyle{myplain}
and you're done.
MWE
\begin{filecontents*}{references.bib}
@article{x,
author = {Author, A and Buthor, B and Cuthor, C},
journal = {A journal},
title = {A title},
year = {2015}
}
\end{filecontents*}
\documentclass{article}
\usepackage[numbers]{natbib}
\begin{document}
blba bla bla bla bla bla bla \cite{x}
\bibliographystyle{myplain}
\bibliography{references}
\end{document}
Output:

\documentclass{...}and ending with\end{document}. You’ll find tips for abiblatexMWE in my answer to that question. – doncherry Apr 19 '14 at 11:42.bstfile' method there is generally true for non-biblatexstyles. – Joseph Wright Mar 08 '15 at 13:26