grep de linha de comando para uma string com '$' nele?
-
12-09-2019 - |
Pergunta
Eu estou tentando descobrir onde duas variáveis ??estão sendo concatenados em um diretório de roteiros, mas quando eu tente o seguinte:
grep -lire "$DATA_PATH . $AWARDS_YEAR" *
Eu recebo erros "variável indefinida" ...
Eu pensei que eu poderia escapar $ s usando:
grep -lire "\$DATA_PATH . \$AWARDS_YEAR" *
Mas eu recebo o mesmo erro - assim, como você pesquisar por strings com $ s em
?Solução
Tcsh é um pouco diferente sobre as variáveis ??do que as conchas habituais, e é o padrão no FreeBSD.
Assim, basta usar aspas simples, '$VAR'
, ou escapar do exterior $
das citações: \$"VAR"
Outras dicas
Coloque-o entre aspas simples, com a barra escapar:
grep -lire '\$DATA_PATH . \$AWARDS_YEAR' *
Além disso, observe que o ponto (.) É um personagem regex. Se você não quer que ele seja, fugir dela, também (ou não utilizar a opção -e).
Aqui está um agradável de referência com informações mais gerais.