假设我有一个类似以下内容的文件:
123
123
234
234
123
345
我想找出'123'重复了多少次,'234'重复了多少次,等等。
理想情况下,输出结果应该是这样的:
123 3
234 2
345 1
假设我有一个类似以下内容的文件:
123
123
234
234
123
345
我想找出'123'重复了多少次,'234'重复了多少次,等等。
理想情况下,输出结果应该是这样的:
123 3
234 2
345 1
sort <file> | uniq -c
您也可以在GNU版本上使用更冗长的--count
标志,例如,在Linux上:
sort <file> | uniq --count
sort
命令:sort <文件> | uniq -c | sort -n
。 - Abhishek Kashyap-d
,我会执行 ... | uniq -c | grep -v '^\s*1'
(-v
表示反向正则表达式,拒绝匹配(不是冗长的、不是版本的 :)))。 - Frank Nsort FILE | uniq -cd
sort FILE | uniq --count --repeated
sort FILE | uniq -c | grep -v '^ *1 '
3 123
2 234
sort FILE | uniq -c
sort FILE | uniq --count
3 123
2 234
1 345
sort FILE | uniq -c | sort -nr
sort FILE | uniq -cd | sort -nr
sort FILE | uniq -c | grep -v '^ *1 ' | sort -nr
| sort -n
或 | sort -nr
将按重复计数对输出进行排序(升序或降序)。这不是你要求的,但我认为它可能会有所帮助。 - Andrea| awk '$1>100'
。 - Andreasort FILE | uniq -c | grep -v '^ *1 '
。 - Andrea为了在多个文件中查找和计算重复的行,您可以尝试以下命令:
sort <files> | uniq -c | sort -nr
或:cat <files> | sort | uniq -c | sort -nr
通过 awk:
awk '{dups[$1]++} END{for (num in dups) {print num,dups[num]}}' data
在awk 'dups[$1]++'
命令中,变量$1
保存了列1的全部内容,方括号是数组访问符。因此,对于data
文件中每一行的第一列,名为dups
的数组节点都会递增。最后,我们使用变量num
循环遍历dups
数组,并先打印已存储的数字,然后打印它们的重复值数量,即dups[num]
。
请注意,您的输入文件某些行末尾有空格,如果清理这些空格,则可以在上述命令中使用$0
替换$1
:)
在Windows中,使用“Windows PowerShell”,我使用下面提到的命令来实现这个目标。
Get-Content .\file.txt | Group-Object | Select Name, Count
此外,我们可以使用where-object命令来过滤结果。
Get-Content .\file.txt | Group-Object | Where-Object { $_.Count -gt 1 } | Select Name, Count
...| Sort -Top 15 -Descending Count | Select Name
来进行排序。 - undefined要查找重复计数,请使用此命令:
sort filename | uniq -c | awk '{print $2, $1}'
tr -s ' ' '\n' < yourfile | sort | uniq -d -c
^--space char