gpt4 book ai didi

arrays - 数组上的 Uniq,显示不正确

转载 作者:行者123 更新时间:2023-12-03 09:49:49 27 4
gpt4 key购买 nike

我是 bash 编程的新手,我正在为数组以及如何使用它们而苦苦挣扎。场景:

我有一个名为 x 的变量,它由一组 IP 组成。这是我从脚本中echo $x

时的输出
182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 201.21.24.22 201.21.24.22 201.21.24.22
44.21.25.31 44.21.25.31 44.21.25.31 44.21.25.31

然后,我想知道每个IP重复了多少次。所需的输出将是:

15 182.100.67.59
4 44.21.25.31
3 201.21.24.22

我试过以下方法

(IFS=" "; sort <<< "$x" ) | uniq -c

输出 注意输出中的第一个 1。

**1** 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 182.100.67.59 201.21.24.22 201.21.24.22 201.21.24.22 44.21.25.31 44.21.25.31 44.21.25.31 44.21.25.31 

我没有看到这个,它应该很简单,但我找不到解决方案:(谢谢!非常棒的社区!

最佳答案

方法一:
使用 tr 将空格替换为换行符,然后是 sort | uniq -c:

tr ' ' '\n' <<<"$x" | sort | uniq -c

方法二:
使用 echoxargs -n1 每行写一个 IP,然后是 sort | uniq -c。请注意,xargstr 慢,而且可能有潜在的副作用,例如引号删除:

echo "$x" | xargs -n1 | sort | uniq -c

关于arrays - 数组上的 Uniq,显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65181785/

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