linux分割字符串效率比较

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xfg0218/article/details/82470077

1 生成数据 1

2  把数据替换成一行并以逗号分割 1

3  准备脚本分割的脚本 1

3.1 数组分割 1

3.1.1 脚本实例 1

3.1.2 查看效率 2

3.2  sed 替换换行符 2

3.2.1 脚本实例 2

3.2.2 查看效率 2

3.3 awk 切割分隔符 2

3.3.1 脚本实例 2

扫描二维码关注公众号,回复: 3287580 查看本文章

3.3.2 查看效率 3

 

1 生成数据

# seq 999999 >> a.txt

#  head -n 1 a.txt

1

2  把数据替换成一行并以逗号分割

#  sed -i ':a;N;$!ba;s/\n/,/g' a.txt

# wc -l a.txt

1   a.txt

3  准备脚本分割的脚本

3.1 数组分割

3.1.1 脚本实例

# cat arr.sh 
#!bin/sh

str=`cat $1`
arr=(${str//,/ })  
for i in ${arr[@]}  
do  
    echo $i  
done

3.1.2 查看效率

# time sh arr.sh a.txt 
++++++++
^C

real    10m7.343s
user    10m7.758s
sys    0m0.067s

执行了10m兼职不可忍受,直接断掉了

3.2  sed 替换换行符

3.2.1 脚本实例

# cat sed.sh 
#!/bin/bash  
  
str=`cat $1`
for i in `echo "$str" | sed 's/,/\n/g'`
do  
    echo $i  
done

3.2.2 查看效率

# time sh sed.sh a.txt

*******

999997
999998
999999

real    0m10.271s
user    0m5.657s
sys    0m1.179s

sed 替换脚本用时10s

3.3 awk 切割分隔符

3.3.1 脚本实例

# cat  awk.sh

#!bin/sh
a=`cat $1`
b=`echo $a |awk -F ',' '{for(i=1;i<=NF;i++){print $i}}'`
for s in $b
do
echo $s
done

3.3.2 查看效率

# time sh  awk.sh  a.txt

*********

999995
999996
999997
999998
999999

real    0m11.103s
user    0m6.450s
sys    0m1.196s

awk替换脚本用时11s,与sed的10s相差无几

猜你喜欢

转载自blog.csdn.net/xfg0218/article/details/82470077