Re: [問題] 在shell script數字排序

看板Linux作者 (小州)時間11年前 (2014/10/03 17:06), 編輯推噓4(402)
留言6則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《filiaslayers (司馬雲)》之銘言: : 請問一下,shell下有程式可以排序數字嗎? : 像是我用read輸入了3 9 11 4存到變數a : 是否有程式可以幫我排序變數a的數字得到b? 測試... Linux:kendlee@~> a="23 9 2 54 4 22 67" Linux:kendlee@~> echo $a 23 9 2 54 4 22 67 所以內容有隨機的數值在裡面。一般要排序可以使用 sort -n 處理,但是 變數內容是一整行無法排序,所以得先變成多行才可以給 sort 處理。所以... Linux:kendlee@~> echo $a | tr " " "\n" 23 9 2 54 4 22 67 所以看起來有成功變成多行了.... 那可以開始透過 sort -n 處理: Linux:kendlee@~> echo $a | tr " " "\n" | sort -n 2 4 9 22 23 54 67 那最後要產生一個變數紀錄,用空白隔開的話,那就.... Linux:kendlee@~> b=$(echo $a | tr " " "\n" | sort -n ) Linux:kendlee@~> echo $b 2 4 9 22 23 54 67 提供給你參考。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.250.59 ※ 文章網址: http://www.ptt.cc/bbs/Linux/M.1412327203.A.026.html

10/03 17:10, , 1F
用空白隔開的話,再用tr換掉\n就好了XDDDD
10/03 17:10, 1F

10/03 17:11, , 2F
不過非常的謝謝你~~
10/03 17:11, 2F

10/03 19:35, , 3F
_sorted=`echo $a|xargs -n1|sort -n`
10/03 19:35, 3F

10/03 19:42, , 4F
xargs 這個方式也妙,好用~
10/03 19:42, 4F

10/03 23:21, , 5F
竟然可以用xargs!!感謝分享
10/03 23:21, 5F

10/04 04:10, , 6F
推荐文章。
10/04 04:10, 6F
文章代碼(AID): #1KBcSZ0c (Linux)
討論串 (同標題文章)
文章代碼(AID): #1KBcSZ0c (Linux)