Thanks for your response.
Now, I can't repro it either, I must have had an extra % on the command line, though with a command that simple I find that hard to believe.
My original problem was that I was trying to filter text through awk, resulting in an error (which I should have written down) that I could repro with the more simple command. After reviewing again, it was the % in the awk placeholder text that was originally causing the problem, with vim complaining about an "Empty file name".
Example (that now works):
:% !sort | uniq | awk '{printf("X\%s\n", $0);}'
Even though the printf format string is in single quotes, the % must be escaped as \%. It looks like vim uses a very different command text parser than bash.
|