【发布时间】:2015-07-24 04:07:16
【问题描述】:
awk -F'\t' 'BEGIN{OFS="\t"}
{x[NR]=$1;y[NR]=$2}
END{
for(m=1;m<=NR;m++){
for(n=m+1;n<=NR && x[m] == x[n];n++){
print NR,m,n,x[m],x[n],y[m],y[n] >> "tmp"
}
}
}' all_lemma10
awk -F'\t' 'BEGIN{OFS="\t"}
{x[NR]=$1;y[NR]=$2}
END{
for(m=1;m<=NR;m++){
for(n=m+1;n<=NR;n++){
if (x[m]==x[n]){
print NR,m,n,x[m],x[n],y[m],y[n] >> "tmp"
}
}
}
}' all_lemma10
我对这两个 awk 感到困惑。我认为他们应该得出相同的结果。但事实并非如此。请帮我解释原因。
【问题讨论】:
-
我强烈怀疑如果你只是在多行上用空格重写它并缩进差异会非常明显。将一个自然多行的脚本塞到一行上只会混淆它,特别是如果你另外去除所有其他空白。