Shell中获取字符串长度方法总结
2017-12-29 17:23
691 查看
求字符串操作在shell脚本中很常用,下面归纳、汇总了求字符串的几种可能方法:
【方法一】:利用${#str}来获取字符串的长度
【方法二】:利用awk的length方法
备注:
1) 最好用{}来放置变量
2) 也可以用length($0)来统计文件中每行的长度
【方法三】:利用awk的NF项来获取字符串长度
【方法四】:利用wc的-L参数来获取字符串的长度
备注: -L参数
1) 对多行文件来说,表示打印最长行的长度! 99,表示/etc/passwd文件最长行的长度为99
2) 对单行字符串而言,表示当前行字符串的长度!
【方法五】:利用wc的-l参数,结合echo -n参数
备注:
1) -c参数: 统计字符的个数
2) -n参数: 去除”\n”换行符,不去除的话,默认带换行符,字符个数就成了7
【方法六】:利用expr的length方法
【方法七】:利用expr的$str : “.*”技巧
备注: .*代表任意字符,即用任意字符来匹配字符串,结果是匹配到15个,即字符串的长度为15
【方法一】:利用${#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
相关文章推荐
- Shell获取字符串长度的多种方法总结
- Shell中获取字符串长度的七种方法
- shell中获取字符串长度的方法,获取数组元素个数,获取数组元素,数组遍历
- 测试了3种获取中英文混合字符串长度的方法,看来还是使用循环来的快
- mysql 获取字符串长度方法
- 用Java实现按字节长度截取中英文数字字符串的方法总结
- 测试了3种获取中英文混合字符串长度的方法
- 通过strlen()方法和循环遍历分别获取指针指向的字符串长度
- linux中shell截取字符串方法总结 关键符号${}
- 用Java实现按字节长度截取中英文数字字符串的方法总结
- linux中shell截取字符串方法总结
- 通过js来获取包含中文字符的字符串的长度的方法
- shell中计算字符串长度的方法 查找,替换
- C#中获取字符串字节长度的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- javascript获取中英文混合字符串的长度方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- 用Java实现按字节长度截取中英文数字字符串的方法总结
- 全角半角字符串长度获取方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法