作者kenduest (小州)
看板Linux
标题Re: [问题] 在shell script数字排序
时间Fri Oct 3 17:06:40 2014
※ 引述《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://webptt.com/cn.aspx?n=bbs/Linux/M.1412327203.A.026.html
1F:推 filiaslayers: 用空白隔开的话,再用tr换掉\n就好了XDDDD 10/03 17:10
2F:→ filiaslayers: 不过非常的谢谢你~~ 10/03 17:11
3F:推 HamalAri: _sorted=`echo $a|xargs -n1|sort -n` 10/03 19:35
4F:→ kenduest: xargs 这个方式也妙,好用~ 10/03 19:42
5F:推 filiaslayers: 竟然可以用xargs!!感谢分享 10/03 23:21
6F:推 Debian: 推荐文章。 10/04 04:10