gpt4 book ai didi

arrays - 计算 bash 数组中的唯一值

转载 作者:行者123 更新时间:2023-12-02 20:29:08 25 4
gpt4 key购买 nike

我有一个数组${sorted[@]}。如何计算数组元素出现的频率。

例如:

数组值:

bob
jane
bob
peter

结果:

bob 2
jane 1
peter 1

最佳答案

命令

(IFS=$'\n'; sort <<< "${array[*]}") | uniq -c

说明

  • 用成语 sort file | uniq -c 计算唯一行的出现次数.
  • 除了使用文件,我们还可以将命令行中的字符串提供给sort。使用此处字符串 运算符 <<< .
  • 最后,我们必须将数组条目转换为单个字符串中的行。与 ${array[*]}数组扩展为一个字符串,其中数组元素由 $IFS 分隔.
  • IFS=$'\n'我们设置 $IFS专用于此命令的换行符变量。 $'...'称为 ANSI-C Quoting 并允许我们将换行符表示为 \n .
  • 子shell (...)是否可以保留 $IFS 的零钱?本地的。命令后 $IFS将具有与以前相同的值。

例子

array=(fire air fire earth water air air)
(IFS=$'\n'; sort <<< "${array[*]}") | uniq -c

打印

      3 air
1 earth
2 fire
1 water

关于arrays - 计算 bash 数组中的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49263599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com