【发布时间】:2017-11-13 20:32:04
【问题描述】:
我有一个包含 1617b、1516a 等元素的数组。我想以降序回显元素 - 表示其中字符数最多的元素,如果相同,则表示字母更大的元素。关于如何做到这一点的任何想法?一个简单的“如果”会起作用吗?如:
if [[ ${array[$j]}>${array[$j+1]} ]]; then
.
.
.
tnx 提前
【问题讨论】:
-
我建议删除所有尾随字母:
echo "${array[$j]/[a-z]*/}" -
是的,但我在比较时仍然需要检查字母。我想我可以使用 cut (总是有 4 个数字,然后是一个字母)。但是那我如何比较字母呢?例如,shell 是否知道 B 比 A 大?
-
如果总是有 4 个数字和 1 个字母,词典比较应该可以正常工作,您不需要将其拆分为数字和字母。
-
您可以使用
sort命令,而不是比较bash中的字符串。 -
什么是字典比较?抱歉,我是 bash 新手