awk '/5/{a=1}!a' file2
结果:
1
2
3
4
解释:
第一行 /5/不匹配跳过{a=1},继续!a,此时a没有值属于假取反为真,故输出第一行
第二行 /5/不匹配跳过{a=1},继续!a,此时a没有值属于假取反为真,故输出第二
.
.
第五行等于5 匹配/5/执行{a=1},继续!a,此时a=1有值属于真取反为假,不输出
第六行 /5/不匹配跳过{a=1},继续!a,此时a=1属于真取反为假,不输出
.
.
.
直到结尾都不输出
awk '/5/{a=1}!a' file2
结果:
1
2
3
4
解释:
第一行 /5/不匹配跳过{a=1},继续!a,此时a没有值属于假取反为真,故输出第一行
第二行 /5/不匹配跳过{a=1},继续!a,此时a没有值属于假取反为真,故输出第二
.
.
第五行等于5 匹配/5/执行{a=1},继续!a,此时a=1有值属于真取反为假,不输出
第六行 /5/不匹配跳过{a=1},继续!a,此时a=1属于真取反为假,不输出
.
.
.
直到结尾都不输出