通过#或者@来分割字符串,可以通过awk或者cut来实现,awk可以通过正则,或者
split来实现。
都能实现目标,那么他们的效率怎么样呢?我们来测试一下
[root@nagios fx]# time
awk -F[#@] ‘{print $4}’ www>/dev/null
real 1m9.570s
user 1m9.202s
sys 0m0.340s
[root@nagios fx]# time
awk -F# ‘{split($3,A,”@”);{print A[2]}}’ www>/dev/null
real 0m22.342s
user 0m22.123s
sys 0m0.220s
[root@nagios fx]# time
cut -d# -f 3 www | cut -d@ -f2 >/dev/null
real 0m17.283s
user 0m26.298s
sys 0m0.486s
如此来看,2次cut的效率都大大高于awk
awk的内置函数效率大大高于自己正则匹配
实现同样的目标,用不同的方式得到完全不一样的效率~