> sed 's/#!\///g' urls.txt | xargs curl
So easy, you've actually got it wrong.
Certain special characters after the hash-bang need to be url-encoded, and then that value needs to be added to what's before the #! by including a query string parameter of _escaped_fragment_, checking first whether there is already a query string so as to append the information rather than incorrectly whacking on a '?'.
Plus, this isn't in the form of interpretive dance. So no content for you.