shell脚本统计一个字符串的长度,谁最快,借用这样一个简单的shell习题,复习一下linux命令
先说结果
${#param} 的速度最快,shell编程,尽量使用linux内置的命令,内置的操作和内置的函数,都是用C语言写的,效率最高,尽可能的减少管道符的操作
操作方法
1. 利用数值计算expr命令
expr length "${name}", 双引号可以解析特殊字符
2. awk统计长度
echo ${name} | awk -F '' '{print length($0)}', $0表示脚本名称
3. ${#name} 内置脚本
延伸学习
cat text.txt | wc -l: 统计text.txt的行数
cat text.txt | wc -L: 统计text.txt最长的行的长度
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。
awk -F ' ' '{print $1, $3}' touch.txt, 以space分割,取$1和$3打印
awk -v # 设置变量
awk -va=1 '{print $1,$1+a}' log.txt
awk -va=1 -vb=s '{print $1, $1+a, $1+b}' touch.txt
awk '$1>2 && $2=="Are" {print $1,$2,$3}' log.txt
expr命令是一个手工命令行计数器
expr length “this is a test”
expr substr “this is a test” 3 5
expr index "sarasara" a
expr 14 % 9
time命令用来统计命令执行时长
seq命令
seq -s ' ' 2 8
=>结果:
2 3 4 5 6 7 8
seq -s ' ' 1 2 10
=>结果:
1 3 5 7 9
其中2为增量,同样-s指定了分隔符
seq -f "%02g" 8 12
=>结果:
08
09
10
11
12