我应该计算文件中重复记录的总数。
我用过
sort $TEMP_FILE2 | uniq -d
列出所有没有计数的重复记录。我的问题是,我不知道用什么脚本来总结或得到这些记录的总和。
这应该是我的输出:
总数据计数:xxx
重复数据计数:xxx (文件中的重复记录总数)
最终数据计数:xxx
答案 0 :(得分:2)
我会在这里做一些猜测,因为它并不完全清楚需要什么。首先,我假设您的文件看起来像这样:
apple
banana
pear
apple
pear
apple
我假设“总数据计数”只是条目数,即文件中的总行数。 wc -l
是其中的工具:
$ echo "Total Data Count: $(wc -l < temp_file)"
Total Data Count: 6
$
然后“重复数据计数”是以下两件事之一:
如果它是重复的所有记录的计数(在我的示例中为5 =“apple”,“apple”,“apple”,“banana”,“banana”),uniq -dc
以获取计数重复的字段,然后awk
来总结它们:
$ echo "Duplicate Data Count: $(sort temp_file | uniq -dc | awk '{count+=$1} END {print count}')"
Duplicate Data Count: 5
$
如果是包含重复项的记录数(但不是所有重复项的完整计数)(2 =“apple”,在我的示例中为“banana”),那么wc -l
的{{1}}应该足够了:
uniq -d
我假设“最终数据计数”是删除了重复项的所有记录的数量(在我的示例中为3 =“apple”,“pear”,“banana”)。在这里,我们可以将$ echo "Duplicate Data Count: $(sort temp_file | uniq -d | wc -l)"
Duplicate Data Count: 2
$
简单地传递给uniq
:
wc -l