我需要统计大量文件的第二列元素的出现次数。我正在使用的脚本是这样的:
{
el[$2]++
}
END {
for (i in el) {
print i, el[i] >> "rank.txt"
}
}
为了在大量文件上运行它,我使用find | xargs
这种方式:
find . -name "*.txt" | xargs awk -f script.awk
问题是,如果我计算输出文件的行数rank.txt
(用 a wc -l rank.txt
),我得到的数字(例如 7600)大于第二行的唯一元素数(例如 7300),我用A :
find . -name "*.txt" | xargs awk '{print $2}' | sort | uniq | wc -l
实际上给出一个:
awk '{print $1}' rank.txt | sort | uniq | wc -l
我获得了正确数量的元素(按照示例,我将获得 7300)。所以这意味着输出文件第一列的元素不是唯一的。但是,这不应该发生!