0

我将 Windows 与 cygwin 一起使用。以下命令应输出字符串“./bootstrp3.cab”中“/”的出现次数。当我使用 mintty.exe shell 并输出“1”时它可以工作:

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

不幸的是,它使用 bash.exe shell 输出以下消息

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

看起来这两个 shell 的行为不同,但它们似乎都是同一种 shell,因为当 I 时echo $0, bash.exe 输出bash和 mintty.exe 输出-bash

我还尝试了使用 bourne shell (sh.exe) 的命令,但它输出的消息与使用 bash.exe shell 的消息相同。

有谁知道我如何让命令与 sh.exe 或 bash.exe shell 一起工作?有人知道为什么两个 bash shell 的行为不同吗?

4

1 回答 1

1

sed你可以使用and来做同样的事情wc

echo -n ./bootstrp3.cab | sed 's![^/]!!g' | wc -c
于 2012-07-25T17:10:19.507 回答