use*_*145 491 file lines count find duplicates
假设我有一个类似于以下的文件:
123
123
234
234
123
345
Run Code Online (Sandbox Code Playgroud)
我想找出'123'重复多少次,重复'234'多少次等等.理想情况下,输出结果如下:
123 3
234 2
345 1
Run Code Online (Sandbox Code Playgroud)
won*_*nk0 746
假设每行有一个数字:
sort <file> | uniq -c
Run Code Online (Sandbox Code Playgroud)
您可以--count
在GNU版本中使用更详细的标志,例如,在Linux上:
sort <file> | uniq --count
Run Code Online (Sandbox Code Playgroud)
And*_*rea 383
这将仅打印重复行,计数:
sort FILE | uniq -cd
Run Code Online (Sandbox Code Playgroud)
或者,使用GNU长选项(在Linux上):
sort FILE | uniq --count --repeated
Run Code Online (Sandbox Code Playgroud)
在BSD和OSX上,你必须使用grep来过滤掉唯一的行:
sort FILE | uniq -c | grep -v '^ *1 '
Run Code Online (Sandbox Code Playgroud)
对于给定的示例,结果将是:
3 123
2 234
Run Code Online (Sandbox Code Playgroud)
如果要打印所有行的计数,包括仅出现一次的行:
sort FILE | uniq -c
Run Code Online (Sandbox Code Playgroud)
或者,使用GNU长选项(在Linux上):
sort FILE | uniq --count
Run Code Online (Sandbox Code Playgroud)
对于给定的输入,输出为:
3 123
2 234
1 345
Run Code Online (Sandbox Code Playgroud)
为了对顶部最频繁的行进行排序,您可以执行以下操作(以获得所有结果):
sort FILE | uniq -c | sort -nr
Run Code Online (Sandbox Code Playgroud)
或者,为了获得重复的行,最常见的是:
sort FILE | uniq -cd | sort -nr
Run Code Online (Sandbox Code Playgroud)
在OSX和BSD上,最后一个成为:
sort FILE | uniq -c | grep -v '^ *1 ' | sort -nr
Run Code Online (Sandbox Code Playgroud)
ken*_*orb 70
要查找和计算多个文件中的重复行,可以尝试以下命令:
sort <files> | uniq -c | sort -nr
Run Code Online (Sandbox Code Playgroud)
要么:
cat <files> | sort | uniq -c | sort -nr
Run Code Online (Sandbox Code Playgroud)
αғs*_*нιη 28
通过awk:
awk '{dups[$1]++} END{for (num in dups) {print num,dups[num]}}' data
Run Code Online (Sandbox Code Playgroud)
在awk 'dups[$1]++'
命令中,变量$1
保存column1的全部内容,方括号是数组访问.因此,对于文件中每行的第1列,data
命名数组的节点dups
递增.
最后,我们dups
使用num
变量循环遍历数组并首先打印保存的数字,然后打印重复值的数量dups[num]
.
请注意,您的输入文件在某些行的末尾有空格,如果您清除它们,您可以使用$0
代替$1
上面的命令:)
小智 19
要查找重复计数,请使用以下命令:
sort filename | uniq -c | awk '{print $2, $1}'
Run Code Online (Sandbox Code Playgroud)
vin*_*eel 12
在使用"Windows PowerShell"的Windows中,我使用下面提到的命令来实现此目的
Get-Content .\file.txt | Group-Object | Select Name, Count
Run Code Online (Sandbox Code Playgroud)
我们也可以使用where-object Cmdlet来过滤结果
Get-Content .\file.txt | Group-Object | Where-Object { $_.Count -gt 1 } | Select Name, Count
Run Code Online (Sandbox Code Playgroud)
假设您可以访问标准的Unix shell和/或cygwin环境:
tr -s ' ' '\n' < yourfile | sort | uniq -d -c
^--space char
Run Code Online (Sandbox Code Playgroud)
基本上:将所有空格字符转换为换行符,然后对转换后的输出进行排序,并将其输入到uniq并计算重复行.
归档时间: |
|
查看次数: |
487661 次 |
最近记录: |