Shell中数组中元素排序的技巧

本文介绍两种在Shell和Python中实现数组元素自然数排序的方法。一种是使用tr和sort命令,另一种是利用Python的sorted函数结合lambda表达式。这些技巧有助于简化数组排序过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要将old=(4 7 1 101)里面的元素,按自然数的顺序排序,生成新的数组new=(1 4 7 101)。如果要遍历元素,借助中间变量一个个比较的方式可能比较繁琐,这里有两种比较简单达到数组重新排序。 

方法一: 借助于tr和sort命令

[root@localhost ~]# old=(4 7 1 101)
[root@localhost ~]# new=$(cat ${old[@]} | tr ' ' '\n' | sort -n)
1 4 7 101

备注: 数组中分隔符是空格,借助于tr将空格替换成换行符,再用sort命令的-n可以按自然数排序,便可达到目的。

方法二: 借助于Python命令行方式

 

[root@localhost ~]# old=(4 7 1 101)
[root@localhost ~]# new=$(echo ${old[@]} | python -c "print ' '.join(sorted(raw_input().split(' '), key=lambda x:int(x)))")

备注: 借助于python -c的命令行方式来出来,echo中的内容通过管道传过来,再用raw_input()接收,接下来就是用sort结合lambda的key来排序,排完序再用' '.join()来拼接,处理好再赋值给新数组new。

上面两种方法处理起来还是很有技巧。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值