Grep 比较Ansible中的两个文件列表

Grep 比较Ansible中的两个文件列表,grep,ansible,lookup,Grep,Ansible,Lookup,我在做什么: 我正在使用shell模块读取一个文件,并从整个文件中获取唯一的错误代码,结果是result.out 我是本地文件file1,其中包含已知错误代码列表 现在我想检查文件1中result.out的任何值是否匹配,然后重新启动服务 我可以在shell中使用以下命令来实现这一点 hosts: tsm_client

我在做什么: 我正在使用shell模块读取一个文件,并从整个文件中获取唯一的错误代码,结果是result.out 我是本地文件file1,其中包含已知错误代码列表 现在我想检查文件1中result.out的任何值是否匹配,然后重新启动服务

我可以在shell中使用以下命令来实现这一点

 hosts: tsm_client                                                                                                   
 remote_user: root                                                                                                   
 vars_file: error_code                                                                                               
 tasks:                                                                                                              
   - name: Read error file code                                                                                      
     shell: "cat /tsm_error/dsmerrorlog.log |cut -d ' ' -f 5 |sort | uniq | egrep 101|102|103|104 | cat "        
     register: output                                                                                                
     ignore_errors: true                                                                                             
     #- debug: var=output.stdout_lines                                                                               

   - name: Restart Cron Service                                                                                      
     service:                                                                                                        
       name: crond                                                                                                   
       state: restarted                                                                                              
     when: output.stdout != ""                                                                                       

   - debug: msg='Error Code does not macth Please cont to Backup'                              
     when: output.stdout == ""                                                                                       

你能帮我用ansible模块代替shell和grep吗?分享你正在处理的原始错误日志文件的样本。基于此,我们可以决定使用哪个过滤器。DSErrorLog.log中的数据是什么样子的?27/02/20 20:32:20 ANS1228E发送对象“/home/sdda/apps/clickhouse bfg/data/data/sdda_prod1/INTRADAY_POSITION/e112047d49c0a63f1ace7eae70f3338f_16797_16852_11”失败。27/02/20 20:32:20 ANS4005E错误处理“/home/sdda/apps/clickhouse bfg/data/data/sdda_prod1/INTRADAY_POSITION/e112047d49c0a63f1ace7eae70f3338f_16797_16852_11”:找不到文件27/02/20:32:22 ANS1228E发送对象“/home/sdda/apps/clickhouse bfg/data/data/data/data/sdda_prod1/INTRADAY_POSITION/E112047D49C07;/E1308F_16853ACE7;失败基本上我正在尝试执行1-从tsm服务器获取缺少日常备份的客户端节点详细信息2-读取错误。客户端节点中的日志3-匹配本地错误代码列表中客户端节点错误日志中的任何错误代码4-当日志中的代码匹配日志文件ANS1228E中的错误代码时,需要重新启动客户端节点服务,ANS4005E示例客户端错误日志27/02/20 20:32:20 ANS1228E发送对象“/home/sdda/apps/clickhouse bfg/data/data/sdda_prod1/INTRADAY_POSITION/e112047d49c0a63f1ace7eae70f3338f_16797_16852_11”失败。我想这可能是问题的重复:否。。这不是。。您提供的链接是从列表中查找单个值,但我需要做的是从一个列表到另一个列表查找多个值,以替换EgrepsShare您正在处理的原始错误日志文件的示例。基于此,我们可以决定使用哪个过滤器。DSErrorLog.log中的数据是什么样子的?27/02/20 20:32:20 ANS1228E发送对象“/home/sdda/apps/clickhouse bfg/data/data/sdda_prod1/INTRADAY_POSITION/e112047d49c0a63f1ace7eae70f3338f_16797_16852_11”失败。27/02/20 20:32:20 ANS4005E错误处理“/home/sdda/apps/clickhouse bfg/data/data/sdda_prod1/INTRADAY_POSITION/e112047d49c0a63f1ace7eae70f3338f_16797_16852_11”:找不到文件27/02/20:32:22 ANS1228E发送对象“/home/sdda/apps/clickhouse bfg/data/data/data/data/sdda_prod1/INTRADAY_POSITION/E112047D49C07;/E1308F_16853ACE7;失败基本上我正在尝试执行1-从tsm服务器获取缺少日常备份的客户端节点详细信息2-读取错误。客户端节点中的日志3-匹配本地错误代码列表中客户端节点错误日志中的任何错误代码4-当日志中的代码匹配日志文件ANS1228E中的错误代码时,需要重新启动客户端节点服务,ANS4005E示例客户端错误日志27/02/20 20:32:20 ANS1228E发送对象“/home/sdda/apps/clickhouse bfg/data/data/sdda_prod1/INTRADAY_POSITION/e112047d49c0a63f1ace7eae70f3338f_16797_16852_11”失败。我想这可能是问题的重复:否。。这不是。。您提供的链接是从列表中查找单个值,但我需要做的是从一个列表到另一个列表查找多个值,以替换egrep