awk -F '|' '{a[$1","$2]=$1","$2 in a?a[$1","$2]"\n"$0:$0;b[$1","$2]++}END{for (i in a) if (b[i]!=1) {T=0;split(a[i],m,"\n");for (j in m) c[n[split(m[j],n,"|")]];for (k in c) for (l in c) if (k-l>9||k-l<-9) {T=1;break}if (!T) print a[i]}}' file
复制代码
作者: 黑色阳光_cu 时间: 2010-08-05 23:26
#!/bin/env awk
BEGIN {
FS = "|"
}
{
word = $1$2
++count[word]
matrix[word, $0]
if (! (word in min)) min[word] = $3
if (! (word in max)) max[word] = $3
$3 < min[word] && (min[word] = $3)
$3 > max[word] && (max[word] = $3)
}
END {
for (word in count) {
if (count[word] > 1) {
for (k in matrix) {
split(k, idx, SUBSEP)
if (idx[1] == word && max[word] - min[word] < 10) print idx[2]