Você pode usar o seguinte comando para excluir todos os arquivos correspondentes aos seus critérios:
ls | grep -P "^A.*[0-9]{2}$" | xargs -d"\n" rm
Como funciona:
-
lslista todos os arquivos (um por linha, pois o resultado é canalizado). -
grep -P "^A.*[0-9]{2}$"filtra a lista de arquivos e deixa apenas aqueles que correspondem à expressão regular^A.*[0-9]{2}$-
.*indica qualquer número de ocorrências de., em que.é um curinga que corresponde a qualquer caractere. -
[0-9]{2}indica exatamente duas ocorrências de[0-9], ou seja, qualquer dígito.
-
-
xargs -d"\n" rmexecutarm lineuma vez para cadalineque é canalizado para ele.
Where am I wrong?
Para iniciantes, rm não aceita uma expressão regular como argumento. Além do curinga * , todos os outros caracteres são tratados literalmente.
Além disso, sua expressão regular está ligeiramente desativada. Por exemplo, * significa quaisquer ocorrências de ... em uma expressão regular, então A* corresponde a A , AA , etc. e até mesmo uma string vazia.
Para mais informações, visite Regular-Expressions.info .