String 如何在Unix终端中查找字符串对的频率

String 如何在Unix终端中查找字符串对的频率,string,unix,terminal,frequency,String,Unix,Terminal,Frequency,如何从Unix终端中计算以下内容,然后将结果存储在文件中 4F8D-AA87-D9EC8805DFDA,3a58538d510c66b98ad7bb3cb9768de08e1ae30b91302add63f7b115 4F8D-AA87-D9EC8805DFDA,3a58538d510c66b98ad7bb3cb9768de08e1ae30b91302add63f7b115 4F8D-AA87-D9EC8805DFDA,3a58538d510c66b98ad7bb3cb9768de08e1ae3

如何从Unix终端中计算以下内容,然后将结果存储在文件中

4F8D-AA87-D9EC8805DFDA,3a58538d510c66b98ad7bb3cb9768de08e1ae30b91302add63f7b115
4F8D-AA87-D9EC8805DFDA,3a58538d510c66b98ad7bb3cb9768de08e1ae30b91302add63f7b115
4F8D-AA87-D9EC8805DFDA,3a58538d510c66b98ad7bb3cb9768de08e1ae30b9130dsasdadsadss
49FB-A855-3EED46E0BF2E,3a58538d510c66b98ad7bb3cb9768de08e1ae30b9130dsasdadsadss

4F8D-AA87-D9EC8805DFDA,3a58538d510c66b98ad7bb3cb9768de08e1ae30b91302add63f7b115, 2
4F8D-AA87-D9EC8805DFDA,3a58538d510c66b98ad7bb3cb9768de08e1ae30b9130dsasdadsadss, 1
49FB-A855-3EED46E0BF2E,3a58538d510c66b98ad7bb3cb9768de08e1ae30b9130dsasdadsadss, 1
编辑:

好吧,我想,我明白了:

cat lol | cut -f 1,2 -d ',' | sort | uniq -c > lol2

我现在唯一的问题是,输出文件的第一列实际上应该在末尾,而且输出文件应该与csv兼容。有什么想法吗?

简单地计算唯一的行会有问题吗?如果没有,则uniq命令是您的朋友-,但请确保首先对列表进行排序,以便所有重复都在一次之后进行:

sort myfile.txt | uniq -c
对于示例数据,返回:

  2 4F8D-AA87-D9EC8805DFDA,3a58538d510c66b98ad7bb3cb9768de08e1ae30b91302add63f7b115
  1 4F8D-AA87-D9EC8805DFDA,3a58538d510c66b98ad7bb3cb9768de08e1ae30b9130dsasdadsadss
  1 49FB-A855-3EED46E0BF2E,3a58538d510c66b98ad7bb3cb9768de08e1ae30b9130dsasdadsadss
要重定向到文件,请附加outfile.txt:

sort myfile.txt | uniq -c > outfile.txt
如果需要与问题中的输出类似的输出,可以使用
awk
对列重新排序,并使用
sed
更改分隔符:

sort count.txt | uniq -c | awk '{ print $2 " " $1 }' | sed 's/ /,/'