tr 명령은 cygwin bash.exe 쉘에서 문제를 일으키지 만 mintty.exe에서 작동합니다
문제
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
.
두 쉘이 다르게 작동하는 것으로 보이지만, echo $0
, bash.exe 출력 bash
및 mintty.exe가 -bash
를 출력하기 때문에 둘 다 같은 종류의 쉘 인 것 같습니다.
나는 또한 Bourne 쉘 (Sh.exe)으로 명령을 시도했지만 bash.exe 쉘과 동일한 메시지를 출력합니다.
누구든지 sh.exe 또는 bash.exe 쉘을 사용하여 작업을 수행 할 수있는 방법을 알고 있습니까?누군가가 두 개의 bash 껍질이 왜 다르게 행동하는지 알고 있습니까?
해결책
sed
및 wc
를 사용하여 동일한 작업을 수행 할 수 있습니다.
echo -n ./bootstrp3.cab | sed 's![^/]!!g' | wc -c
. 제휴하지 않습니다 StackOverflow