Q:

Is `xargs` the way to go with this problem? 

I've got a text file with a listing of file locations I want to move, first to temporary directory, do some in the source directory then move the files back to the original location. 
The listing file is of the format generated by, say, a find command, such as:
~/$ find .  -name "*.[ch]" > ~/tmp/my_file_list.txt

Currently I'm using sed to manipulate the file on the screen, and cutting and pasting its output to issue the commands.   I find this offensive, but it works:
~/$ sed -r 's_.+_cp & ~/tmp/_' ~/tmp/my_file_list.txt

(copy and paste outputs, then to put the files back)
~/$ sed -r 's_.+/(.+)_cp ~/tmp/\1 &_' ~/tmp/my_file_list.txt

(copy ... paste ... wince)
How could I do the above two lines simply without the copy and paste ... I'm thinking xargs might hold the solution I yearn. 
[Edit]
To deal with spaces:
~/$ sed -r 's_.+_cp "&" ~/tmp/_' ~/tmp/my_file_list.txt

and
~/$ sed -r 's_.+/(.+)_cp "~/tmp/\1" "&"_' ~/tmp/my_file_list.txt

A:

Simply pipe the output into bash:
~/$ sed -r 's_.+_cp & ~/tmp/_' ~/tmp/my_file_list.txt | bash

