Shell中获取字符串长度方法总结
发布时间:2020-12-15 09:07:24 所属栏目:安全 来源:网络整理
导读:求字符串操作在shell脚本中很常用,下面归纳、汇总了求字符串的几种可能方法: 【方法一】:利用${#str}来获取字符串的长度 [mkx@localhost testdir]$ stringZ=abcABC123ABCabc[mkx@localhost testdir]$ echo ${#stringZ}15 【方法二】:利用awk的length方法 [m
求字符串操作在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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |