Domanda

Io uso Windows con cygwin.Il seguente comando dovrebbe emettere il numero di occorrenze di "/ 'nella stringa" ./bootstrp3.cab ".Funziona quando uso la conchiglia e le uscite Mintty.exe "1":

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

Sfortunatamente emette il seguente messaggio con la shell bash.exe

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

Sembra che le due gusci si comportino in modo diverso, ma entrambi sembrano essere lo stesso tipo di shell, perché quando i echo $0, bash.exe uscite bash e mintty.exe uscite -bash.

Ho anche provato il comando con Bourne Shell (sh.exe), ma emette lo stesso messaggio di BASH.EXE Shell.

Qualcuno sa come posso ottenere il comando lavorare con la shell sh.exe o bash.exe?E qualcuno sa perché i due gusci di Bash si comportano in modo diverso?

È stato utile?

Soluzione

Puoi fare la stessa cosa usando sed e wc:

echo -n ./bootstrp3.cab | sed 's![^/]!!g' | wc -c
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top