These lines are completely bogus anyways, there is little sense in debugging them.
You are doing a
ls found*.tmp | while IFS= read -r entry; do
[...something...]
done
and my suspicion is that you want to read the contents of all files named "found*.tmp" mince that through your while-loop. What you do in fact is to expand "found*.tmp", which will give you a list of files, something like
Notice that the only thing "ls" has done for you is to convert the separating spaces to linefeeds. Now, you take one after the other of these filenames and present them to sed , as input files, one after the other and every time you invoke sed in a separate subshell.
May i ask you a personal question: if you go to a chinese restaurant, do you call the waiter separately for each order of a single grain of rice or do you call him once and tell him to bring "the big rice plate, with everything on it"? Because this is like you treat poor old sed in your script: instead of presenting it a single stream to work on you call it once every time you got some characters to process.
Here is how you can do the same in perhaps a fraction of the time:
cat found*tmp | sed -n 's/.*<name>/;s/<\/name>.*/_Deploy.cfg/p'
This line will have the same limitations your original would have had, if you would have written it syntactically correct: it will only work correctly if there is only one "<name>...</name>" tag pair on every single line of input and none of these pairs span more than one line. Also, the script takes no caution for superfluous spaces. The following lines anywhere in your input will make the commands output probably not what it is intended to be and/or unusable (just like your script, would it have been correct):