Pregunta

Yo uso Windows con cygwin.El siguiente comando debería generar el número de apariciones de '/' en la cadena "./bootstrp3.cab".Funciona cuando uso el shell mintty.exe y genera "1":

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

Desafortunadamente, genera el siguiente mensaje con el shell bash.exe

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

Parece que los dos caparazones se comportan de manera diferente, pero ambos parecen ser el mismo tipo de caparazón, porque cuando echo $0, salidas bash.exe bash y salidas mintty.exe -bash.

También probé el comando con el shell bourne (sh.exe), pero genera el mismo mensaje que con el shell bash.exe.

¿Alguien sabe cómo puedo hacer que el comando funcione con el shell sh.exe o bash.exe?¿Y alguien sabe por qué los dos shells bash se comportan de manera diferente?

¿Fue útil?

Solución

Puedes hacer lo mismo usando sed y wc:

echo -n ./bootstrp3.cab | sed 's![^/]!!g' | wc -c
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top