Bash 要在ansible playbook项目中使用awk命令吗

Bash 要在ansible playbook项目中使用awk命令吗,bash,awk,ansible,ansible-inventory,Bash,Awk,Ansible,Ansible Inventory,这是我的剧本,如果我用awk命令将第四项加上双引号,则该剧本不起作用,如下所示: 任务: -shell:“{{item}}” 有以下项目: -主机名 -df-kh -正常运行时间 -grep-i diameter/tmp/PSC-CIPDiameter_8.1_*_1.stat.0 | awk-F“,”{if($4!=0 | 5!=0 | 6!=0)打印“diameter Time:$1”成功:$3失败:$4超时:$5”拒绝:$6}” 注册:测试 -调试: msg:{{test.results}

这是我的剧本,如果我用
awk
命令将第四项加上双引号,则该剧本不起作用,如下所示:

任务:
-shell:“{{item}}”
有以下项目:
-主机名
-df-kh
-正常运行时间
-grep-i diameter/tmp/PSC-CIPDiameter_8.1_*_1.stat.0 | awk-F“,”{if($4!=0 | 5!=0 | 6!=0)打印“diameter Time:$1”成功:$3失败:$4超时:$5”拒绝:$6}”
注册:测试
-调试:
msg:{{test.results}map(attribute='stdout_lines')|list}

将awk代码放入从模板创建的文件中。这样,您可以单独测试代码并提高代码的可读性。例如,模板

shell> cat templates/script01.j2.awk 
{
  if ($4!=0 || $5!=0|| $6!=0)
    print "Diameter Time:" $1 " Success:" $3 " Fail:" $4 " Timeout:" $5 " Reject:"$6;
}
还有剧本

-hosts:localhost
任务:
-模板:
src:script01.j2.awk
目的地:script01.awk
-shell:“{{item}}”
循环:
-正常运行时间
-“echo 1,2,3,4,5,6 | awk-F','-F script01.awk”
注册:测试
-调试:
msg:{test.results | map(attribute='stdout')| list}
给予

“msg”:[
“17:05:13上升3天,13:42,1个用户,平均负载:1.93,1.45,1.74”,
“直径时间:1成功:3失败:4超时:5拒绝:6”
]

#我还想在我的项目列表中包含以下命令a=
ifconfig-a | awk-F”“{print$1}'| grep-i en | sed的/://g'
;因为我一美元;do echo$i
ethtool$i | egrep-i“双工|速度”
;请发布一些具有预期输出的可测试样本数据。不要将其作为图片或评论发布,而是将其编辑为原始问题。顺便说一句,不是我的反对票。你的YAML无效:@Shuvhashis Paul:欢迎来到SO!提出你的问题。仅在必要时对您的问题进行评论。改为用代码更新您的问题并删除注释。@ShuvhashisPaul wrt-不要在注释中添加容易遗漏的附加要求,请在您的问题中包含所有相关信息。