搜公众号
推荐 原创 视频 Java开发 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库
Lambda在线 > linux分割字符串效率比较

linux分割字符串效率比较

2018-12-14
举报

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

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 

++++++++


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相差无几


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《linux分割字符串效率比较》的版权归原作者「小徐的技术之路」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注小徐的技术之路微信公众号

小徐的技术之路微信公众号:xiaoxuBigdata

小徐的技术之路

手机扫描上方二维码即可关注小徐的技术之路微信公众号

小徐的技术之路最新文章

精品公众号随机推荐

举报