Na linha de comando , você deve estar usando um shell glob em vez de tentar regexar a saída de ls
. Por exemplo, no bash você poderia usar uma expansão de chave
rm "$FILENAME".{aux,dvi,log,ps}
ou (se a globalização estendida estiver ativada)
rm "$FILENAME".!(tex|pdf)
Dentro de um Makefile, você provavelmente deveria estar usando as funções de transformação de texto do comando make
- no caso do GNU make, por exemplo, você poderia usar addprefix
, por exemplo.
FILENAME = foo
.PHONY: clean
clean:
@echo rm $(addprefix $(FILENAME),.aux .dvi .log .ps)
dando
$ make clean
rm foo.aux foo.dvi foo.log foo.ps
Veja GNU make: Funções para substituição e análise de string