2013-02-28 110 views
0

數組以 「空間」 作爲默認分隔符:空間分隔符陣列Shell腳本

str="HI I GOT;IT" 

arr2=$(echo $str | tr ";" " ") 
for x in $arr2 
do 
echo " $x" 
done 

輸出:

HI

GOT

IT

我想輸出是:

HI I GOT

IT

回答

0

你還沒有說哪個殼,這是,但它看起來像bash,所以我會去那第i個。這是IFS的一項工作,它確定bash如何拆分單詞。在這裏,我們將它設置爲;作爲單個命令,來分割您的字符串。

您還需要適當地遍歷數組(使用引號和[@]),以便它在此時不會被bash再次分割。

str="HI I GOT;IT" 
IFS=\; arr=($str) 
for x in "${arr[@]}" 
do 
    echo "$x" 
done