0

报告工具将在文件系统(Unix 目录)中生成大量报告/文件。有一个目标列表(电子邮件地址和共享文件夹),其中需要在每个目标分发一组不同的报告/文件(可能有重叠)。

想知道是否有一种方法可以使用 shell 脚本有效地管理此报告的传递,以便将来维护报告和目标列表不会变得一团糟。

这是一个非常开放的问题,但限制是它应该在 Unix FS 中管理报告的范围内工作。

4

1 回答 1

0

您始终可以创建一个简单的文本文件(此处为report_locations.txt),其中包含报告所在的名称/位置,即

ReportName1;/home/bob
ReportName2;/home/jim,/home/jill
ReportName3;/home/jill,/home/bob

报告名称将始终是此示例中的第一个字段,以及相应报告应遵循的位置,由逗号(或您喜欢的任何其他分隔符)分隔。

然后使用 shell 脚本读取该文件(我喜欢使用for循环进行此类操作):

#!/usr/bin/ksh93
for REPORT in $(cut -d";" -f1 report_locations.txt)
do
        LISTS=$(grep ${REPORT} report_locations.txt | cut -d";" -f2)
        for LIST in ${LISTS}
        do
                DIRS=$(echo ${LIST} | tr ',' '\n')
                for DIR in ${DIRS}
                do
                        echo "Copying ${REPORT} to ${DIR}"
                        cp -f ${REPORT} ${DIR}
                done
        done
done

循环的使用for可能有点过度(我陷入其中),但它可以完成工作。

不确定这是您要寻找的东西,但如果有的话,它是一个起点。不要犹豫,询问您是否需要对代码进行任何解释。

于 2010-01-15T20:03:04.807 回答