This is a programming forum so you're bound to get programming-type answers.
I think it's unlikely someone will have written software just to do this. If they have then it'll be part of a suite of functions, so one way or another you're going to have to specify exactly what you want the computer to do.
And that my friend is a program.
So the only question left is what language you want to learn. BASIC is a good one for beginners; many people started with that (myself included, ZX81 BASIC), it's often used by non-programmers who think they can program. There are loads of variants of BASIC, free and paid.
Or you can use something like Perl as oogabooga suggested, or you could learn C which will do what you want very easily and very quickly, and being industry standard C will be a very marketable skill, even if you don't have much of it.
Unix command line utilities (see GnuWin32 if you're on Windows) can also do this kind of stuff; have a look at swk and sed. The languages are a bit on the cryptic side but I think both of these would be capable.
Here's a quick C program to do two parts of what you want:
Code:
FILE *fp;
int i;
fopen_s(&fp,"names.txt","r");
if (fp)
{
char buf[64];
for(;;)
{
// read a name in from the file
fgets(buf,60,fp);
if (feof(fp))
break;
// clean up any terminating whitespace
for (i=0; buf[i]; i++) ;
for (i--; isspace(buf[i]); buf[i--]=0) ;
// loop, printing the name and a number
for (i=0; i<3; i++)
{
printf("%s%d\n",buf,i);
}
// print the name and an embedded string
printf("%c%cHELLO%s\n",buf[0],buf[1],buf+2);
}
fclose(fp);
}
Output:
john0
john1
john2
joHELLOhn
tom0
tom1
tom2
toHELLOm
pete0
pete1
pete2
peHELLOte