Quando você emite egrep "\" string_demo | wc -l
, seu shell está tratando \
como barra invertida e continuando a receber entrada no PS2
até você digitar EOF ( Ctrl + D ).
Nesses casos, você precisa usar aspas simples para escapar da interpretação do shell. Mais precisamente, se você quiser procurar barras invertidas literais em um arquivo, use:
grep '\' file.txt
Exemplo:
$ grep '\' file.txt
eagle,dove\ ,cat
Aqui eu fiz duas alterações, primeiro usei aspas simples ( ''
) e usei \
para informar grep
que eu quero procurar literal \
, caso contrário grep
mostrará o seguinte erro:
$ grep '\' file.txt
grep: Trailing backslash
Em poucas palavras, seu comando pode ser escrito das seguintes maneiras:
-
Usando a Substituição de processos do Bash:
wc -l < <(grep '\' string_demo)
-
Uso do método usual:
grep '\' string_demo | wc -l
**** Não use egrep
, ele está obsoleto em favor de grep -E
.
Verifique se este post de U & L para obter as diferenças entre grep
, grep -E
& amp; %código%.