我尝试在shell脚本中为变量awk: ${12}==W {print $3}
awk: ^ syntax error
awk: cmd. line:1: ${12}==W {print $3}
赋值 - 第一个完美地工作,第二个失败,语法错误如下所示。唯一的区别在于'=='。
c=`zgrep "600" $present_date$b$a* | awk -F "," '$4==600 {print $3}' | sort | uniq | wc -l`
c=`zgrep "600" $present_date$b$a* | awk -F "," '${12}==W {print $3}' | sort | uniq | wc -l`
这是我尝试过的代码:
ngModel
任何人都可以帮助我 - 这里有什么问题。
更多要点: 我有100个文件,每个文件有38个以逗号分隔的字段。
$ present_date $ b $ a * - 根据日期获取所有文件。我知道这很好用。
我需要计算所有唯一的第3个字段条目,其中包含'600'和第12个字段= W
答案 0 :(得分:0)
删除12
周围的大括号,并引用您匹配的字符串,如下所示:
awk -F "," '$12=="W" {print $3}'
答案 1 :(得分:0)
awk不是shell。 awk是一个拥有所有语言的工具,其语法与C语言远比shell更相似。因此,不要尝试在awk脚本中使用${variable} == value
之类的shell语法,而是使用C / awk语法variable == value
。你不需要sort,uniq和wc btw - awk脚本可以做你想要的:
awk -F',' '($4==600) && ($12=="W") && !seen[$0]++{cnt++} END{print cnt+0}'