给定一个txt文件,该文件具有以下值:
123
123
234
234
123
345
我用
sort FILE | uniq -cd
为了得到计数的数目,找到了每个值。
但是我怎么才能同时输出找到的行呢?
输出:
123 3 0;1;4
234 2 2;3
行计数是基于零的,因此上面的数字。
最佳答案
awk '
{
frequency[$1]++
if (line[$1]=="")
{
line[$1]=NR-1
}
else
{
line[$1]=line[$1]";"NR-1
}
}
END{
for (j in frequency)
if (frequency[j]>1)
print j, frequency[j], line[j]
}' file
$1
:第一列内容NR
:当前行号输出:
234 2 2;3个
123 30;1;4年