Awk 将END和另一个条件合并,如“$1<;计数| |结束`
回答时,我写了以下Awk 将END和另一个条件合并,如“$1<;计数| |结束`,awk,Awk,回答时,我写了以下awkcode % cat mark_blocks $1<count { print count; print ""; for(i=1;i<=count;i++) print l[i]; } # executed for each line { l[$1] = $0; count=$1} END { print count; print ""; for(i
awk
code
% cat mark_blocks
$1<count { print count; print "";
for(i=1;i<=count;i++) print l[i]; }
# executed for each line
{ l[$1] = $0; count=$1}
END { print count; print "";
for(i=1;i<=count;i++) print l[i]; }
%
但我得到的是
awk: e.awk:1: $1<count||END{print count;print "";for(i=1;i<=old;i++)print l[i]; }
awk: e.awk:1: ^ syntax error
awk:e.awk:1:$1只有当脚本处理完其所有记录时,才会排除awk
脚本中的END
块
因此,它可以被视为一个finaling语句,其中不存在当前记录读取以获得预期的$1
简而言之,END
块只被排除一次,显然是在末尾
您可以在其中完美地使用|
或在普通块中使用
乙二醇
awk'$1==1 | |$1==2{print$0}'
将打印$1
为1
或2
的所有记录
用于输入
1
2
3
4
输出将是
1
2
附:如果有明确的证据支持,“这是不可能的”这句话,当然可能是一个完美的答案。
1
2