前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux分割字符串效率比较

linux分割字符串效率比较

作者头像
小徐
发布2019-08-05 14:43:26
1.1K0
发布2019-08-05 14:43:26
举报
文章被收录于专栏:GreenplumGreenplum

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 河马coding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档