2013-04-22 79 views
1

現在我有形式"temp:10"的字符串,我用temp=$(echo $str|awk '{split($0,array,":")} END{print array[1]}')來分裂,這是過度的和緩慢..必須有一個更簡單的做到這一點?簡單的方法來在bash中像這樣溢出一個字符串?

+0

由湯姆答案是最好,但還有一點:'awk'{split($ 0,array,「:」)} END {print array [1]}')'本身是過度殺傷性的。您可以使用'awk -F:'{print $ 1}'來實現同樣的目的。 – anishsane 2013-04-22 06:43:54

回答

4

使用bash的參數擴展後綴去除:

temp=${str%%:*} 
1

如果我理解你的話,你需要在這個例子中的:temp之前的值。如果是這樣,那麼你可以使用cut命令:

cut -d':' -f1 
+0

看起來很酷的感謝 – kun 2013-04-22 04:27:21

2

另外還有read命令:

$ str="temp:10" 
$ IFS=: read before after <<< "$str" 
$ echo "$before" 
temp 
$ echo "$after" 
10 
相關問題