unix中一个字符在字符串中出现的次数

yhived7q  于 2023-10-18  发布在  Unix
关注(0)|答案(5)|浏览(143)

在unix命令行中,有没有办法计算一个字符在字符串中出现的次数。
例如:string=“Hello”“l”这应该返回2
string =“hello”“k”这应该返回0
string =“hello”“H”这应该返回0
谢谢

qmelpv7a

qmelpv7a1#

另一个不同的解决方案

$ echo "hello" | grep -o . | uniq -c
      1 h
      1 e
      2 l
      1 o

我想如果你只想要“l”的话。

$ echo "hello" | grep -o . | uniq -c | grep l
      2 l
wnvonmuf

wnvonmuf2#

在$STRING中查找字符l

echo $STRING| grep -o l | wc -l
gg0vcinb

gg0vcinb3#

echo "Hello" | tr -cd "l" | wc -c

修剪删除“l”的恭维语;计算字符数。

vsikbqxv

vsikbqxv4#

使用Bash内置字符串hello并查找'l'可以通过以下方式完成:

strippedvar=${string//[^l]/}
echo "char-count: ${#strippedvar}"

首先,从字符串中删除所有不同于l的字符。
显示剩余变量的长度。
替换中的变量可以由var给出,如下面的循环所示:

string=hello
for ch in a b c d e f g h i j k l m; do
    strippedvar=${string//[^$ch]/}
    echo "The letter ${ch} occurs ${#strippedvar} times"
done

输出值:

The letter a occurs 0 times
The letter b occurs 0 times
The letter c occurs 0 times
The letter d occurs 0 times
The letter e occurs 1 times
The letter f occurs 0 times
The letter g occurs 0 times
The letter h occurs 1 times
The letter i occurs 0 times
The letter j occurs 0 times
The letter k occurs 0 times
The letter l occurs 2 times
The letter m occurs 0 times
mkshixfv

mkshixfv5#

一句话回答

#for i in {a..l}; do str="hello";cnt=`echo $str| grep -o $i| wc -l`;echo $cnt| grep -v 0; done
1
1
2

相关问题