首页 > 解决方案 > 使用 Bash 实现自动化

问题描述

我们总共有 168 个子目录,所有子目录都以 doc_t扩展名结尾,在这些子目录下会有一些文件 std_doc_ _t.lst、PA_doc_*_t_output。

所以我需要检查所有这些子目录,report.rpt 中是否有任何看不见的模块为此我创建了一个小脚本,如下所示:

#!/bin/bash
for d in *_t; 
do
    echo "$d"
    cat $d/PA_*_output/report.rpt | grep "Unseen Module"
    echo ""
done

上述脚本的输出是:

doc_txa1_t
Number of Unseen Modules      = 4
smro                                   1               Unseen Module ( 1 )
mapo_HDN                               1               Unseen Module ( 1 )
trms7_cpo                              1               Unseen Module ( 1 )
overlay                                1               Unseen Module ( 1 )
Unseen Modules:
    Definition : Unseen Module (line 1) 
    Definition : Unseen Module (line 1) 

doc_fuse_t
Number of Unseen Modules      = 1
Unresolved Modules: 
TEF07HD18_PH_OVERLAY            4               Unseen Module ( 1 )
Unseen Modules: 
    Definition : Unseen Module (line 1) 

现在我需要在此路径中搜索这些看不见的模块(smro、mapo_HDN、trms7_cpo、overlay、TEF07HD18_PH_OVERLAY),/proj/history/Unseen_Modules如果这些可用,那么我们需要在此文件 std_doc_*_t.lst 中添加以下路径,该路径在所有子目录中可用,如下所示:

/proj/history/Unseen_Modules/TEF07HD18_PH_OVERLAY
/proj/history/Unseen_Modules/smro
/proj/history/Unseen_Modules/mapo_HDN
/proj/history/Unseen_Modules/trms7_cpo
/proj/history/Unseen_Modules/overlay

在上面的 bash 脚本中,任何人都可以帮助我在对 Unseen 模块进行 grep 之后如何执行此操作,以及我需要如何在此路径 /proj/history/Unseen_Modules/ 中搜索这些模块。
我试过这个:

#!/bin/bash
path = /proj/history/Unseen_Modules
for d in *_t; 
do
    echo "$d"
    cat $d/PA_*_output/report.rpt | grep "Unseen Module"

done

我被困在如何在 $path 中搜索这些模块。

标签: bash

解决方案


推荐阅读