Shell中获取字符串长度方法总结

求字符串操作在shell脚本中很常用,下面归纳、汇总了求字符串的几种可能方法:

【方法一】:利用${#str}来获取字符串的长度

[mkx@localhost testdir]$ stringZ=abcABC123ABCabc
[mkx@localhost testdir]$ echo ${#stringZ}
15

【方法二】:利用awk的length方法

[mkx@localhost testdir]$ echo ${stringZ} | awk '{print length($0)}'
15

备注:

1) 最好用{}来放置变量

2) 也可以用length($0)来统计文件中每行的长度

[mkx@localhost testdir]$ awk '{ print length($0) }' /etc/passwd
31
32
39
36

【方法三】:利用awk的NF项来获取字符串长度

[mkx@localhost testdir]$ echo $stringZ | awk -F "" '{print NF}'
15

备注: -F为分隔符,NF为域的个数,即单行字符串的长度

【方法四】:利用wc的-L参数来获取字符串的长度

[mkx@localhost testdir]$ echo ${stringZ} | wc -L
15
[mkx@localhost testdir]$ cat /etc/passwd |wc -L
99

备注: -L参数

1) 对多行文件来说,表示打印最长行的长度! 99,表示/etc/passwd文件最长行的长度为99

2) 对单行字符串而言,表示当前行字符串的长度!

【方法五】:利用wc的-l参数,结合echo -n参数

[mkx@localhost testdir]$ echo -n "ABCDEF" | wc -c
6

备注:

1) -c参数: 统计字符的个数

2) -n参数: 去除”\n”换行符,不去除的话,默认带换行符,字符个数就成了7

【方法六】:利用expr的length方法

[mkx@localhost testdir]$ expr length ${stringZ}
15

【方法七】:利用expr的$str : “.*”技巧

[mkx@localhost testdir]$ expr $stringZ : ".*"
15

备注: .*代表任意字符,即用任意字符来匹配字符串,结果是匹配到15个,即字符串的长度为15

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值