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