bash - 在同一行 Bash 上排序

标签 bash sorting unix

你好,我正在尝试对一组数字命令行参数进行排序,然后在同一行上以相反的数字顺序回显它们,每个参数之间有一个空格。我有这个循环:

for var in "$@"
do
echo -n "$var "
done | sort -rn

但是,当我将 -n 添加到 echo 时,sort 命令停止工作。我试图在不使用 printf 的情况下执行此操作。使用 echo -n 它们不会排序,只是按照输入的顺序打印。

最佳答案

你可以这样做:

a=( $@ )
b=( $(printf "%s\n" ${a[@]} | sort -rn) )

printf "%s\n" ${b[@]}
# b is reverse sorted nuemrically now

关于bash - 在同一行 Bash 上排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19274695/

相关文章:

bash - GPG key 存在于列表中?

Java 按同一字段对项目进行两次排序

按格式不一致的耗时字段排序(k8s 事件按事件发生后的实际时间)

wpf - 在没有虚拟化的情况下在 WPF DataGrid 上排序时性能不佳

c - fork() 这个图我看不懂

javascript - 获得一个工作 meteor JS Vagrant 盒子

javascript - 以编程方式检查网络资源是否已加载到网页

linux - 在 Windows 上重新编译/运行动态共享对象 (DSO)

linux - 用shell脚本中的空行替换文件的一行?

c - C套接字中奇怪的while循环?