如何使用Unix shell脚本计算文件名中“_”的出现次数

时间:2010-11-09 13:46:08

标签: shell unix

我想计算在我的文件名中出现'_'(得分低于)的时间。我该怎么做?

4 个答案:

答案 0 :(得分:3)

echo $filename | tr -c -d _ | wc -c

答案 1 :(得分:1)

我会用tr。

$ echo "8979858774_/hkjhjkh_kjh.hjghjg/_jhkj/_/" | tr -d _ -c | wc -c
   4

答案 2 :(得分:0)

另一种变化:

echo "$filename" | grep -o _ | wc -l

或支持此功能的shell,例如Bash,ksh和zsh:

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

答案 3 :(得分:-2)

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

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