il comando TR causa problemi nel cygwin bash.exe shell, ma funziona in mintty.exe
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?
Soluzione
Puoi fare la stessa cosa usando sed
e wc
:
echo -n ./bootstrp3.cab | sed 's![^/]!!g' | wc -c
.