shell split 功能实现方法

1.用shell数组实现

#!/bin/bash  
  
str="hello,world,i,like,you,babalala"  
arr=(${str//,/ })  
for i in ${arr[@]}  
do  
    echo $i  
done

注:当字符串短(分隔字符不超过1000)的时候,速度还可以容忍。当分隔字符上千时速度有点无法忍受了。原因可能是shell数组性能差导致。


2.用shell 中sed替换分隔符来循环打印

#!/bin/bash  
  
str="hello,world,i,like,you,babalala"  
for i in `echo "$str" | sed 's/,/\n/g'`
do  
    echo $i  
done

注:当字符串中分隔符少时和上面的实现没什么大的速度差别,当字符串中分隔上千时这个实现比上一个快很多倍。


3.用shell中awk

#!/bin/bash


str="hello,world,i,like,you,babalala"  

echo $str | awk -F',' '{for( i=1;i<NF; i++ ) print $i}' 
注:这个方法简单,效率也不错。


你可能感兴趣的:(shell split 功能实现方法)