- 论坛徽章:
- 12
|
读入第一行 100 109
模式 $1!=b+1 动作{if(NR==1){a=$1}else{print a,b;a=$1}}
$1为100 b未定义故为空 100!=(空)+1 成立 于是去执行动作 因为NR==1成立 即赋值a=100
模式 空 动作{b=$2}
因为模式为空 故每一行都会执行动作 b=$2 即赋值b=109
读入第二行 110 119
模式 $1!=b+1 动作{if(NR==1){a=$1}else{print a,b;a=$1}}
$1为110 b为109 110!=109+1 不成立 于是不去执行动作
模式 空 动作{b=$2}
因为模式为空 故每一行都会执行动作 b=$2 即赋值b=119
读入第三行 120 129
模式 $1!=b+1 动作{if(NR==1){a=$1}else{print a,b;a=$1}}
$1为120 b为119 120!=119+1 不成立 于是不去执行动作
模式 空 动作{b=$2}
因为模式为空 故每一行都会执行动作 b=$2 即赋值b=129
读入第四行 130 139
模式 $1!=b+1 动作{if(NR==1){a=$1}else{print a,b;a=$1}}
$1为130 b为129 130!=129+1 不成立 于是不去执行动作
模式 空 动作{b=$2}
因为模式为空 故每一行都会执行动作 b=$2 即赋值b=139
读入第五行 160 169
模式 $1!=b+1 动作{if(NR==1){a=$1}else{print a,b;a=$1}}
$1为160 b为139 160!=139+1 成立 于是去执行动作 此时NR==5故NR==1不成立,于是执行{print a,b;a=$1} 即输出100 139 同时赋值a=160
模式 空 动作{b=$2}
因为模式为空 故每一行都会执行动作 b=$2 即赋值b=169
读入第六行 170 179
模式 $1!=b+1 动作{if(NR==1){a=$1}else{print a,b;a=$1}}
$1为170 b为169 170!=169+1 不成立 于是不去执行动作
模式 空 动作{b=$2}
因为模式为空 故每一行都会执行后面的动作 b=$2 即赋值b=179
最后执行END{print a,b}
此时a=160 b=179 故输出 160 179 |
|