1. 程式人生 > >shell split 功能實現方法

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}'  注:這個方法簡單,效率也不錯。