O que você está fazendo não funcionará porque o glob não é expandido pelo comando xargs quando é executado, ele é expandido pelo shell assim que você pressiona enter e antes que qualquer um desses comandos comece a ser executado. Então o glob tenta expandir é:
%*.txt
e como não há arquivos que correspondam a esse padrão, ele o deixa sozinho e, quando o xargs é executado, ele substitui seus argumentos nessa sequência.
A solução mais simples é provavelmente escrever um padrão que corresponda a todos os arquivos em que você está interessado de uma só vez:
ls {file,otherfile}*.txt