Команда TR вызывает проблемы в Cygwin Bash.exe Shell, но работает в Mintty.exe

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

  •  11-12-2019
  •  | 
  •  

Вопрос

Я использую Windows с cygwin.Следующая команда должна выводить количество вхождений «/» в строке «./bootstrp3.cab».Он работает, когда я использую оболочку и выходы mintty.exe "1":

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

К сожалению, он выводит следующее сообщение с помощью оболочки bash.exe

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

Кажется, что два раковины ведут себя по-разному, но они оба, кажется, одинаковы раковины, потому что когда I GensacodiceTacodCode, Bash.exe выходы echo $0 и Mintty.exe выводы Renacodicetacode.

Я также попробовал команду с оболочкой Bourne (SH.exe), но он выводит одно и то же сообщение, что и с оболочкой Bash.exe.

Кто-нибудь знает, как я могу получить команду, работающую с Sh.exe или Bash.exe Shell?И кто-то знает, почему два раковины Bash ведут себя по-разному?

Это было полезно?

Решение

Вы можете сделать то же самое, используя sed и wc:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top