Exactly what does “failing” mean? Does it give a diagnostic, do nothing, or remove the wrong file? Linux tries its best to explain its actions in the event of failure.
I can think of several possible causes:
.. This command gets the file list from stdin, and you do not show the source of that. Have you forgotten to redirect that input from a file, or run in the wrong directory, or moved that file as part of the migration?
.. Does that list contain absolute names or relative names, or a mixture? Have those files been moved to different parts of the directory tree during the migration?
.. Has that list of files been edited on a Windows machine? That is likely to put a CR character at the end of every line, which Linux will assume is part of the filename. awk can fix that, if you know how to ask it.
.. Have the failing files, or any directories in their paths, had their permissions changed during the migration? Refusing read permissions on any part of the directory tree, or write permissions on the file, will stop this from working.
We cannot suggest an alternative command until we understand why the current one is failing. As my eminent colleague states, this command is correct in any known Unix/Linux environment, and any awk version since about 1980.
Addendum:
Another possible reason for failure: throwing random filenames into xargs is a bad idea. Any special characters in a filename (space, tab, CR, newline, quotes, apostrophies, backslashes and others) will cause the filename to be split into several words, or mangled in other interesting ways. xargs has options to deal with this, the safest of which is to terminate each filename with a NUL character.