shell 获取字符串长度

时间:2022-10-18 12:58:47

1、利用${#str}

str="hello world";echo ${#str}

2、利用awk的length方法

str="hello world";echo ${str}|awk '{print length($0)}'

也可以用awk '{print length($0)}'统计文件中每行的长度:
awk '{print length($0)}' /etc/passwd

3、利用awk的NF项

str="hello world";echo ${str}|awk -F "" '{print NF}'

4、利用wc的-L参数

str="hello world";echo ${str}|wc -L
备注: -L参数
1) 对多行文件来说,表示打印最长行的长度! 82,表示/etc/passwd文件最长行的长度为82
2) 对单行字符串而言,表示当前行字符串的长度!

5、利用wc的-c参数,结合echo -n参数

str="hello world";echo -n ${str}|wc -c ==>11
str="hello world";echo ${str}|wc -c ==>12
备注:
1) -c参数: 统计字符的个数
2) -n参数: 去除"\n"换行符,不去除的话,默认带换行符,字符个数就成了7

6、利用expr的length方法

str="helloworld";expr length ${str}
#这种方法,str中不能带有空格,不然就就会报错

7、利用expr的$str : ".*"技巧

str="helloworld";expr ${str} : ".*"
#这种方法,str中不能带有空格,不然就就会报错