我正在为一个问题(实际上是this one)起草一个简化的版本:
from flask import Flask, render_template
from Face_Detector import *
输出:
$ echo {a..g} | tr ' ' '\n' | # create some data
awk -v s=e '{ # search string as an argument
for(i=1;i<=2;i++) # keep 2 last records in a
a[i]=a[i+1] # this is the problematic part later
a[3]=$1 # hash the current record into a
}
$1==s { # once there is a match
for(i=1;i<=3;i++) # output from the hash
print a[i]
}'
作为我,我不得不尝试使其长度缩短几个字节(从c
d
e
和i++
-> for
中删除a[i+1]
:
a[++i]
但是在GNU awk上输出失败:
e
过了一会儿,我开始换用mawk,它奏效了。它也可以在Busybox awk上运行,但是在awk-20121220上失败。知道导致该行为的原因是什么?另外,如果您对标题有更多描述性的想法,请随时进行更改。
答案 0 :(得分:3)
具体取决于哪个表达式首先被评估(左手还是右手)的实现。请考虑以下示例:
i = 1 a[i += 2] = i + 1
a[3]
的值可以是2或4。