ls | grep "png" | awk 'BEGIN{FS="\."}{print $1".png " $1".jpg"}'|xargs mv
Obvs você tem que mudar a primeira parte antes do awk para encontrar seus arquivos png. E isso não funcionará se você tiver mais de 1 .
no caminho.
Isso provavelmente não é uma solução que funcionará em seu caso específico imediatamente, mas há todas as peças de que você precisa. Se você me der mais detalhes ou, melhor ainda, uma impressão de uma lista de todos os arquivos que precisa ser mudado, então eu poderia mudar o comando exatamente para você.
EDIT # 1:
Eu não percebi que ele precisava examinar o conteúdo do arquivo para saber quais estão errados, achei que ele conhecia a lista de arquivos nomeados incorretamente.
EDIT # 2:
Comentadores parecem estar obcecados com a parte do código antes do awk. Eu pensei que estava claro o suficiente com a minha primeira frase, mas desde que eu não estava; Você terá que fornecer o código antes do awk que listará adequadamente seus arquivos. Além disso, isso foi planejado como um exemplo básico de como você poderia começar a realizar uma tarefa como essa por conta própria. Admiti que quase certamente não funcionaria copiando e colando.
Você aprenderá mais preenchendo e trabalhando com a solução real do que aplicando cegamente linhas da Internet. Se você ainda está preso neste ponto, fique à vontade para comentar e eu posso tentar ajudar.