计算bash变量中的位数

act*_*ner 6 bash shell digits

我有一个号码num=010.我想计算这个数字中包含的位数.如果位数高于某个数字,我想做一些处理.

在上面的例子中,位数是3.

谢谢!

Eta*_*ner 12

假设变量只包含数字,那么shell已经使用Shell参数扩展的长度执行了您想要的操作.

$ var=012
$ echo "${#var}"
3
Run Code Online (Sandbox Code Playgroud)


anu*_*ava 5

在BASH中你可以这样做:

num='a0b1c0d23'
n="${num//[^[:digit:]]/}"
echo ${#n}
5
Run Code Online (Sandbox Code Playgroud)

使用awk你可以做到:

num='012'
awk -F '[0-9]' '{print NF-1}' <<< "$num"
3

num='00012'
awk -F '[0-9]' '{print NF-1}' <<< "$num"
5

num='a0b1c0d'
awk -F '[0-9]' '{print NF-1}' <<< "$num"
3
Run Code Online (Sandbox Code Playgroud)