Tente:
grep -- -R *.GNU
O --
indica o fim das opções para que -R
seja visto como um argumento em vez de uma opção para grep
Como posso encontrar "-R" em arquivos com grep?
Eu tentei grep "-R" *.GNU
para obter as linhas que contêm -R, mas não retorna nada.
Uma boa quantidade de ferramentas GNU suporta uma opção na qual você pode informar à ferramenta ( rm
, grep
, ls
, etc.) que você não quer mais que continue a análise das opções de linha de comando . Essa opção é facilitada marcando a entrada da linha de comando com um traço duplo --
.
Você pode ler mais sobre isso na FAQ do GNU CoreUtils . Especificamente, esta seção, intitulada: 11 Como faço para remover arquivos que começam com um traço .
Isso permite que os arquivos que começam com um traço (por exemplo, -
) sejam passados como argumentos da linha de comando:
rm ./-stuff
rm /full/path/-stuff
rm -- -stuff
mv ./-stuff differentstuff
mv -- -stuff differentstuff
As formas mais comuns
grep -- -R *.GNU
funciona com algumas variantes do grep. O --
diz ao grep para parar de procurar por flags.
grep -e -R *.GNU
também funciona. O -e
diz ao grep que segue um padrão de pesquisa.
Alternativas
grep '[-]R' *.GNU
[-]
é uma classe de caracteres . Como há apenas um caractere na classe, ele deve corresponder a um hífen ( -
).
grep '.\?-R' *.GNU
O ponto de interrogação diz ao grep que o caractere anterior a ele é opcional. O .
corresponde a qualquer caractere.
grep '\(\)-R' *.GNU
Os parênteses constituem um grupo vazio.
grep -e -R ./*.GNU
é outra possibilidade.
Tente escapar do painel como
grep "\-R" *.GNU
Tags grep