2014-03-26 49 views
1

只有一條線我有一個變量,它是這個樣子:排序返回在bash

param="David Salad 100\nMark Fruit 440\nNoam Chicken 440" 

我需要根據數字,然後按字母順序所以出來放應該對它進行排序:

馬克水果440 諾姆雞440 大衛沙拉100

我試着寫下面一行:

temp=`echo -e $param | sort -srnk3` 
echo -e $D 

但是輸出是「馬克水果440諾姆雞440大衛沙拉100」 排序不打印任何\ n的,即使我認爲它應該。

+0

'回聲-e'是不可移植和不鼓勵使用,利用代替'printf'。 –

回答

3

排序工作

$ param="David Salad 100\nMark Fruit 440\nNoam Chicken 440" 
$ echo -e $param | sort -srnk3 
Mark Fruit 440 
Noam Chicken 440 
David Salad 100 

,你只需要引用變量("$temp")看到新行

$ temp=`echo -e $param | sort -srnk3` 
$ echo "$temp" 
Mark Fruit 440 
Noam Chicken 440 
David Salad 100