regex - 在 bash 和正则表达式中排序数组

标签 regex linux bash shell sed

我有一个数组,其中包含 CPU 核心编号和每个核心的编号。 该数组是总计。

如何排序

totals=( CPU0=12345 CPU1=23456 CPU3=01234) 

根据数字并返回 cpu 编号的排序版本,例如 (3,0,1) 表示它已排序,核心 3 是最小的,核心 1 是最大的,在 bash 中?然后将 (3,0,1) 赋给一个数组?

最佳答案

试试这个排序:

echo ${totals[*]} | tr ' ' '\n' | sort -n -t= -k2

要在新数组中仅存储 CPU 编号,请尝试:

sorted_cpu_numbers=( $(echo ${totals[*]} | tr ' ' '\n' | sort -n -t= -k2 | awk -F= '{print substr($1, 4, length($1))}') )

关于regex - 在 bash 和正则表达式中排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11609299/

相关文章:

linux - 使用 ssh 在 linux 上安装 java

json - 将数组映射到没有公共(public)字段的对象

java - 使用 String.matches() 代替 util Pattern 匹配前两位数字

Javascript - RegExp - 替换未被字母包围的字符

用于分割的 Java 空格和换行符正则表达式

linux - 在 R ("No such file or directory"中安装包(AlgDesign 和 ggplot2)时出现问题

c++ - 原子 "check signal and enter system call"操作

linux - cURL Bash 将响应主体保存到文件

python - 从 HTML 表中提取数据

c# - 用于验证数字和字符的正则表达式