所以我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.txt
或derp.txt
应该出现。我错过了什么吗?任何人都可以启发我为什么它会输出这样的结果?
我有一个按 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) 我在shell脚本中有这个代码:
sort input | uniq -c | sort -nr > output
Run Code Online (Sandbox Code Playgroud)
输入文件没有前面的空格,但输出有。我该如何解决?这是在 bash
我想在一组字符串中只保留一个排列并计算每个排列的出现。
为了使事情更清楚,我想转换(例如)
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 中做到这一点?
我有一个 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) 我有 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 的文件,我的计算机内存是否需要双倍大小,即是否需要安装更多内存?
还有其他方法可以做到这一点吗?