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:
-
ls
lista 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" rm
executarm line
uma vez para cadaline
que é 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 .