La commande tr provoque des problèmes dans le shell cygwin bash.exe, mais fonctionne dans mintty.exe

StackOverflow https://stackoverflow.com//questions/11652672

  •  11-12-2019
  •  | 
  •  

Question

J'utilise Windows avec Cygwin.La commande suivante doit afficher le nombre d'occurrences de « / » dans la chaîne « ./bootstrp3.cab ».Cela fonctionne lorsque j'utilise le shell mintty.exe et que j'affiche "1":

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

Malheureusement, le message suivant apparaît avec le shell bash.exe

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

Il semble que les deux obus se comportent différemment, mais ils semblent tous les deux être du même type d'obus, car lorsque je echo $0, sorties bash.exe bash et sorties mintty.exe -bash.

J'ai également essayé la commande avec le shell bourne (sh.exe), mais elle affiche le même message qu'avec le shell bash.exe.

Est-ce que quelqu'un sait comment faire fonctionner la commande avec le shell sh.exe ou bash.exe ?Et est-ce que quelqu'un sait pourquoi les deux shells bash se comportent différemment ?

Était-ce utile?

La solution

Vous pouvez faire la même chose en utilisant sed et wc:

echo -n ./bootstrp3.cab | sed 's![^/]!!g' | wc -c
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top