
ssh1% cat temp
sarah
saab
marrrrrrrrra
marrrrrrrtha
ssh1% grep ar*a temp
grep: No match.
Essa não deveria ser a saída?
sarah saab marrrrrra
Tentei usar putty e nxclient para Windows 10.
Responder1
Você está usando csh
, que vê *
e tenta expandi-lo como umglobo de conchae falha. Ou seja, está csh
dizendo "Sem correspondência" aqui, não grep
. DiferenteConchas da família Bourne, csh
não passará um padrão glob não expansível para o comando, então você deve citá-lo para csh
liberá-lo para grep
.
Eu recomendo aspas simples aqui, já que você não está tentandointerpolaruma variável na string:
% grep 'ar*a' temp
sarah
saab
marrrrrrrrra
Aspas duplas também funcionarão neste caso porque seu padrão não contém $
, mas eu recomendo usar aspas simples aqui de qualquer maneira. É um hábito que vale a pena cultivar considerar cuidadosamente quais aspas você usa em idiomas que permitem usá-las de forma semi-intercambiável, como Shell, Perl, etc. Não precisamos de interpolação de strings aqui, então escolheremos não usar o estilo de aspas isso permite.
A propósito, você também deve citar os padrões RE nas conchas da família Bourne. Como Mike Wagner sugere em seu comentário acima, porque expressões regulares e padrões globuse muitos dos mesmos caracteres especiais, às vezes você pode escrever um padrão RE que apenasacontecepara também corresponder a alguns arquivos e, portanto, é expandido inesperadamente pelo shell.