简体   繁体   English

AWK无法列印

[英]AWK not printing

I was wondering why this awk command line is not printing FILENAME . 我想知道为什么这个awk命令行不打印FILENAME

WORD=abrego
NWORD=${#WORD}
awk -F", " -v var3=$NWORD -v var2="$WORD" -v var1="colombia" \
'gsub(/^c1 \[[^]]*\]/,",") \
$NF==var1 && (var3==length($(NF-2)) || var3==length($(NF-1))) && ($(NF-2)==var2 || $(NF-1)==var2) \
{print FILENAME}' file*

file1 : file1

c1 [gaston zamora-abrego, j.] univ nacl colombia sede medellin, dept ciencias forestales, medellin, colombia

file2 : file2

c1 [zamora-abrego, joan g.] univ nacl colombia, dept ciencias forest, grp ecol  conservac fauna silvestre, sede medellin, colombia

file3 : file3

c1 [gaston zamora-abrego, j.] univ nacl colombia, dept ciencias forestales, fac ciencias agr, medellin , antioquia, colombia

file4 : file4

c1 [perez, maritza] abrego, norte de santander, colombia

Expected Output 预期产量

file4

gsub function in your code needs to execute first to make other conditions work. 您的代码中的gsub函数需要先执行才能使其他条件起作用。

This should work: 这应该工作:

awk -F", " -v var3=$NWORD -v var2="$WORD" -v var1="colombia" '{gsub(/^c1 \[[^]]*\]/,",")} 
  $NF==var1 && (var3==length($(NF-2)) || var3==length($(NF-1))) && 
    ($(NF-2)==var2 || $(NF-1)==var2) {print FILENAME}' file*

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM