Você tem um arquivo chamado a
em seu diretório atual. você não citou o RE passado para grep
, então é isso que está acontecendo:
Dado
grep [aeiou] file1
O shell vê [aeiou]
e, como é um padrão válido (glob), ele tenta corresponder isso a um único arquivo de letra a
, e
, i
, o
, u
. Como ele é bem sucedido, substitui o parâmetro pelo arquivo correspondente, a
. O resultado inteiro é então executado como um comando:
grep a file1
E isso lhe dá a saída que você está vendo. Devo salientar que, se a concha não pode glob seu padrão deixa inalterado. Isso permite que [eiou]
tenha sucesso, onde aparentemente [aeiou]
"falha".
A solução é citar os seus parâmetros que não são de arquivo, assim:
grep '[aeiou]' file1