【发布时间】:2017-03-04 17:42:10
【问题描述】:
假设我有一个数组:
nameArr=("Leia", "Darth Vader", "Anakin", "Han Solo", "Yoda")
我想按降序排序。我怎么能在 Bash shell 脚本中做到这一点?我按升序使用命令:
arrAsc=($(for l in ${nameArr[@]}; do echo $l; done | sort))
非常感谢您的帮助!
【问题讨论】:
-
尝试
sort -r颠倒顺序。 -
它有效!非常感谢!
-
也可以写
arr=($(printf '%s\n' "${nameArr[@]}" | sort -r)) -
我会说没关系,因为复杂性应该是一样的。我说的对吗?
-
printf '%s\n' ${arr[@]}只是一个很好的提醒,它会一个接一个地处理输入字符串中的所有值,替换for循环(在这种情况下),相同的功能。 (想想使用printf一次处理两个单词是多么容易)。您也可以认为最短的代码获胜;-)。祝你好运。
标签: arrays bash shell sorting scripting