我如何计算'_';在我的文件名中使用Unix shell脚本

我如何计算'_';在我的文件名中使用Unix shell脚本,shell,unix,Shell,Unix,我想计算在我的文件名中出现“u”(分数不足)的次数。如何做到这一点?可能不是最优雅或完美的解决方案,但应该做到: echo $filename|split -C 1 - /tmp/foobar grep -l '_' /tmp/foobar* |wc -l rm /tmp/foobar* 我会用tr $ echo "8979858774_/hkjhjkh_kjh.hjghjg/_jhkj/_/" | tr -d _ -c | wc -c 4 另一个变化: echo "$filename

我想计算在我的文件名中出现“u”(分数不足)的次数。如何做到这一点?

可能不是最优雅或完美的解决方案,但应该做到:

echo $filename|split -C 1 - /tmp/foobar
grep -l '_' /tmp/foobar* |wc -l
rm /tmp/foobar*
我会用tr

$ echo "8979858774_/hkjhjkh_kjh.hjghjg/_jhkj/_/" | tr -d _ -c | wc -c
   4
另一个变化:

echo "$filename" | grep -o _ | wc -l
或者对于支持此功能的shell,如Bash、ksh和zsh:

u=${filename//_}
echo $((${#filename} - ${#u}))

这是使用UNIX shell脚本完成的。我仍然需要尝试一下。。。谢谢你的帮助Kimvais
u=${filename//_}
echo $((${#filename} - ${#u}))