Pergunta

Eu uso o Windows com o cygwin.O comando a seguir deve gerar o número de ocorrências de '/' na string "./bootstrp3.cab".Funciona quando eu uso o shell mintty.exe e gera "1":

echo ./bootstrp3.cab | tr -cd / | wc -c

Infelizmente, ele exibe a seguinte mensagem com o shell bash.exe

Usage:
tr [-cs] string1 string2
tr -s[-c] string1
tr -d[-c] string1
tr -ds[-c] string1 string2

Parece que as duas conchas se comportam de maneira diferente, mas ambas parecem ser o mesmo tipo de concha, porque quando eu echo $0, saídas bash.exe bash e saídas mintty.exe -bash.

Também tentei o comando com o shell bourne (sh.exe), mas ele gera a mesma mensagem do shell bash.exe.

Alguém sabe como posso fazer o comando funcionar com o shell sh.exe ou bash.exe?E alguém sabe por que os dois shells bash se comportam de maneira diferente?

Foi útil?

Solução

Você pode fazer a mesma coisa usando sed e wc:

echo -n ./bootstrp3.cab | sed 's![^/]!!g' | wc -c
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top