Por que o grep não funciona? [fechadas]

0

Estou tentando encontrar todos os arquivos em meu diretório, que contêm a string "< 3". Isso deve ser simples:

grep "<3" *

No entanto, a execução desta imprime

grep: <3: No such file or directory

e, em seguida, continua a grep todos os arquivos para outra coisa ... (Eu não sei exatamente o que, mas as linhas aparecem contendo não 3 em tudo ...)

CAUSA: aparentemente havia um arquivo -f no meu diretório, e quando está sendo passado para o grep com o * , o grep está tratando isso como um flag, causando esse comportamento.

Tentar excluir este arquivo normalmente também não funciona, pois o rm também o considera como um sinalizador. Graças a uma sugestão do Nick, este arquivo pode ser removido com

rm ./-f
    
por Alex 11.08.2017 / 20:58

2 respostas

5
grep "<3" -- *

Com -- você pode determinar o fim das opções e o início dos argumentos posicionais para muitos programas GNU. Assim, um arquivo -l não causa nenhum dano.

Uma alternativa é

grep "<3" ./*
    
por 11.08.2017 / 21:21
1

Não é possível replicar:

$ echo '<3' > foo
$ grep "<3" *
foo:<3
    
por 11.08.2017 / 21:01

Tags