标签: uniq

uniq 命令无法正常工作?

所以我md5用这个作为我的输出检查我的文件的哈希值:

657cf4512a77bf47c39a0482be8e41e0  ./dupes2.txt
657cf4512a77bf47c39a0482be8e41e0  ./dupes.txt
8d60a927ce0f411ec94ac26a4785f749  ./derpina.txt
15f63928b8a1d5337137c38b5d66eed3  ./foo.txt
8d60a927ce0f411ec94ac26a4785f749  ./derp.txt
Run Code Online (Sandbox Code Playgroud)

但是,在运行find . -type f -exec md5sum '{}' ';' | uniq -w 33找到唯一的哈希后,我得到了这个:

657cf4512a77bf47c39a0482be8e41e0  ./dupes2.txt
8d60a927ce0f411ec94ac26a4785f749  ./derpina.txt
15f63928b8a1d5337137c38b5d66eed3  ./foo.txt
8d60a927ce0f411ec94ac26a4785f749  ./derp.txt
Run Code Online (Sandbox Code Playgroud)

根据我的理解,由于它们的哈希值相同,因此只有其中一个derpina.txtderp.txt应该出现。我错过了什么吗?任何人都可以启发我为什么它会输出这样的结果?

command-line bash uniq

29
推荐指数
2
解决办法
3万
查看次数

如何计算文件中文本的出现次数?

我有一个按 IP 地址排序的日志文件,我想找出每个唯一 IP 地址出现的次数。我怎样才能用 bash 做到这一点?可能会列出 ip 旁边出现的次数,例如:

5.135.134.16 count: 5
13.57.220.172: count 30
18.206.226 count:2
Run Code Online (Sandbox Code Playgroud)

等等。

这是日志的示例:

5.135.134.16 - - [23/Mar/2019:08:42:54 -0400] "GET /wp-login.php HTTP/1.1" 200 2988 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
5.135.134.16 - - [23/Mar/2019:08:42:55 -0400] "GET /wp-login.php HTTP/1.1" 200 2988 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
5.135.134.16 - - [23/Mar/2019:08:42:55 -0400] "POST /wp-login.php HTTP/1.1" 200 3836 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
5.135.134.16 - - [23/Mar/2019:08:42:55 …
Run Code Online (Sandbox Code Playgroud)

command-line bash sort uniq

19
推荐指数
5
解决办法
3713
查看次数

为什么命令 uniq -c 在开头放了一个空格?

我在shell脚本中有这个代码:

sort input | uniq -c | sort -nr > output
Run Code Online (Sandbox Code Playgroud)

输入文件没有前面的空格,但输出有。我该如何解决?这是在 bash

command-line uniq

13
推荐指数
2
解决办法
3826
查看次数

如何从字符串列表中仅获取 a 排列中的一项

我想在一组字符串中只保留一个排列并计算每个排列的出现。

为了使事情更清楚,我想转换(例如)

ab
acf
ba
cfa
acf
Run Code Online (Sandbox Code Playgroud)

进入

2 ab
3 acf
Run Code Online (Sandbox Code Playgroud)

其中 2 和 3 分别是 {a,b} 和 {a,c,f} 的排列数。

您将如何以最直接的方式在 bash 中做到这一点?

bash scripts awk uniq

4
推荐指数
1
解决办法
482
查看次数

如何在第一列中找到重复项,然后删除整行?

我有一个 xlsx 文件(110725x9 矩阵),我保存为文本类型(制表符分隔),因为我不知道 Unix 是否对 xlsx 文件有帮助。重复的行总是逐行连续的。

例如,假设文本文件如下。你会看到 3,4-th、7,8-th 和 17,18-th 行是相同的。我想删除不总是较低的上部重复行。

2009,37214611872    2009    135 20  17,1    17,4    19,2    21,8    24,1
2009,37237442922    2009    135 22  16,5    14,5    12,6    11,2    10,5
2009,37260273973    2009    136 0   7,7     7,2     7,1     7,3     7,5
2009,37260273973    2009    136 0   7,7     7,2     7,0     7,2    7,4
2009,37488584475    2009    136 20  14,6    15,1    16,4    18,3    20,1
2009,37511415525    2009    136 22  15,9    14,6    12,8    10,9    9,4
2009,37534246575    2009    137 0   8,2     6,9     6,2     6,2     6,4
2009,37534246575    2009    137 0 …
Run Code Online (Sandbox Code Playgroud)

command-line duplicate text-processing uniq

4
推荐指数
1
解决办法
1669
查看次数

如何在非常大(65GB)的文本文件中查找重复行?

我有 10 个文本文件,每行包含 65 个十六进制值字符。每个文本文件大小为 6.5GB(有 99999999 行)

IEfile1-6.5GB, file2-6.5GB, file3-6.5GB, file4-6.5GB, ... file10-6.5GB

我需要在所有这 10 个文本文件中找到重复行,并且我需要能够知道哪个重复行来自哪个文件以及有多少个文件有重复行?

我怎样才能做到这一点?

我目前正在使用这个命令:

sort *.txt | uniq -d > dup
Run Code Online (Sandbox Code Playgroud)

但它挂起,有时甚至崩溃。如果我想检查 65GB 的文件,我的计算机内存是否需要双倍大小,即是否需要安装更多内存?

还有其他方法可以做到这一点吗?

command-line sort text-processing uniq 18.04

2
推荐指数
1
解决办法
1786
查看次数

标签 统计

uniq ×6

command-line ×5

bash ×3

sort ×2

text-processing ×2

18.04 ×1

awk ×1

duplicate ×1

scripts ×1