问题标签 [uniq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
141 浏览

grep - 由引用者驱动的总页面浏览量到一页(shell)

拥有combined access_lognginx 或 apache 标准格式的日志文件,您将如何在 UNIX shell 中计算给定引用者曾经带来的每个访问者(即 IP 地址)的访问次数或页面浏览量(即总请求)?

换句话说,每个访问者在另一个站点上找到指向您的站点的链接的所有请求的数量。

0 投票
1 回答
4227 浏览

bash - Unix uniq 命令到 CSV 文件

我有一个包含单字和多字英文短语的文本文件 (list.txt)。我的目标是对每个单词进行字数统计并将结果写入 CSV 文件。

我已经找到了写入每个单词的唯一实例数量的命令,从最大到最小排序。该命令是:

问题是新文件 (output.txt) 的格式化方式。有 3 个前导空格,后面是出现次数,后面是空格,然后是单词。然后进入下一行。例子:

为了以更理想的格式(例如 CSV)获得结果,我需要做什么?例如,我希望它是:

更好的是:

有没有办法使用 Unix 命令执行此操作,或者我需要在文本编辑器或 Excel 中进行一些后处理?

0 投票
1 回答
4041 浏览

unix - 排序,唯一并显示最大计数

在下表中,删除重复项并在某个时间点说 12:06 只应显示最大计数值

输出应如下所示:

0 投票
1 回答
9047 浏览

bash - 用于计算文件中特定单词出现次数的命令行(例如 json 中的键数)

命令行的东西有点新,但正在寻找一些指针。

我使用以下快速脚本来计算密钥在 json 文件中出现的次数:

它工作得很好,但是当我想测试一堆键的计数时会重复......

所以,我想升级它以获取存储在文本文件中的键名数组,而不是在键名参数中单独指定它们。如果它保持单线,并且保持cat-free,那就更好了。

我不太擅长单行,所以我尝试了以下方法:

(1) 制作一个名为 testkeys.sh 的脚本:

(2) 制作一个名为keys.txt的密钥文件

(3) 那么

但是,这没有完成。

想法?

我试图找到某种方法将 keys.txt 的行变成变量以进入 grep 中的循环语句,但没有成功。所需的输出将是...

更新

我知道 grep 可以使用 -f 标志将模式文件作为参数,但这似乎仍然需要以我不理解的方式对脚本进行重大更改。所以,例如...

正在尝试转换...

进入...

生产

……好几次。它还比每个单独执行 n 次的速度花费 /much/ 更长的时间。

我也试过这个,我认为这很酷:

但这也运行了很长时间,并且没有聚合超过 count = 1。

0 投票
2 回答
1681 浏览

unix - 修改重复行删除,订单保留,单行awk命令

我正在尝试处理来自 FE 代码的数据文件,以删除由未收敛计算生成的答案。我的文件基本上是两列数字。我从 stackoverflow 中的另一个提问者那里找到了一个有用的 AWK 解决方案(解释这个重复行删除、订单保留、单行 awk 命令

这仅打印列 a 的值重复的一组行中的第一行

但是在我的数据文件中,第二列中的正确值将是列 a 重复的最后一行,例如:

对于包含数据的文件:

awk '!x[$1]++' file > outFile生产

但我需要生成

是否可以通过修改 awk 之类的方法来做到这一点?

由 Ed Morton 编辑(抱歉,由于格式问题,我无法将其放在评论中):

鉴于海报评论“列 a 中的值可能对每个节点重复,但我只希望在它们相邻时删除重复项”,我认为他的真实样本输入和预期输出将是这样的:

输入:

输出:

对于 OP - 如果我错了,请删除上面的内容。

编辑:

抱歉,我试图简化我的问题,但显然未能充分做到这一点。我不想发布一个完整的文件,因为这些是几个 mb 的 txt。每个文件包含按节点结果输出的数据(至少数百个节点)。每个节点数据都以标题部分开头:

每个标题部分之后是一个两列列表。第一列是时间,第二列是该时间点和节点的计算值。但是,当计算不收敛时,可能会出现给定时间戳的重复条目。每次的最后一个条目将是正确的(收敛的)结果。时间可能(但可能不会)在节点之间重复,并且每次应该在每个节点中保留一行。

下面是文件中一个节点的示例输出。这个文件只有几次重复,可以手动编辑。在其他节点,大多数时间可能出现 10-15 次 - 重复次数各不相同 - 预期的时间点数也是如此。

0 投票
2 回答
237 浏览

bash - 获取 uniq 行的前 N ​​次出现,而不仅仅是一个

我有行的文件,其中两个字段由空格分隔:

我需要在第二列中获取前 N 行类型。我所做的是 sort -k2 | uniq -f1 --all-repeated=prepend | grep "^$" -A3 应该工作但uniq -f1给我的东西不同于uniq -f1 --all-repeated=prepend. 我是否正确理解 prepend 应该只在唯一块之前添加空行?

还是有更好的方法?

谢谢

0 投票
1 回答
110 浏览

sorting - 保留所有行 > 2 个重复项,基于一列

我有一个包含数百万行的文件,格式如下:

我已经使用第 9 列对其进行了排序sort -k9。第 9 列是一个 100 个字母的字符串,但有些条目可能有句点。现在我想删除第 9 列中 100 个字母的字符串仅出现 1 或 2 次(<3 次)的行,并将所有其他行保存到文件中。

我玩过uniq( -d -f9 -w100) 并且sort怀疑awk会有所帮助,但我太新手了,无法弄清楚这一点。

0 投票
1 回答
173 浏览

ruby - 取两个数组并从不唯一的值中创建第三个数组

我正在尝试对庞大的电子邮件列表迁移进行重复数据删除,但是有一个问题。我想把重复的东西变成他们自己的数组(第三个)。

让这些数组变得非常简单和简短。

本质上,我正在尝试制作c = ["rich@aol.com"],因为它是两个列表中唯一的电子邮件。

到目前为止我所做的尝试:

与 unqiq 有相反的含义吗?

返回:["rich@aol.com", "ian@aol.com"]

我可以将 a + b 转储到第三个 c 数组中,并将 c 与 ab.uniq 进行比较以获得重复的内容吗?

我错过了一种更简单的方法吗?任何帮助都感激不尽!!!!

0 投票
3 回答
4539 浏览

awk - 如何在使用 uniq 或 awk 的 shell 脚本中获取唯一 IP 地址和错误的计数?

我正在使用 shell 脚本对 URL 进行 nslookup 以进行多次迭代。我需要检查每个 URL 返回了多少次 IP。

在输出文件中,输出存储为

使用 uniq -c 命令我在相同 IP 地址相邻时得到计数,但当相同 IP 地址在非相邻行上时不计算

这是示例输出

现在,如果为特定 URL 返回多个 IP 地址,并且它们位于不相邻的行上,因为我没有运行。的迭代。在这种情况下,uniq-c 命令将不起作用。如果我使用排序选项,它会排序,但我需要为每个 URL 显示上面的输出,即。URL 和下一行包含计数及其 IP 地址。

例如。如果我在 google.com 上执行 nslookup,它将返回多个地址,并且我执行 uniq -c 我得到以下输出。如您所见,IP 地址相同,但计数仅为 1,因为 uniq -c 不适用于非相邻行。

我也尝试过使用 AWK,但在这种情况下,输出没有按照我的要求进行格式化。

awk 命令

您能否提出一个更好的解决方案来实现这一点 - 以上述格式获取计数和显示?

所需的输出格式是

示例输入文件。

需要的样本输出为

谢谢你。

0 投票
2 回答
469 浏览

shell - 使用 Grep 获取字数

我一直在使用

获得字数,但我有一个格式的文件

我想知道是否有一个命令会返回:3,2,1,1

而不是多次运行上一个命令