unix 如何以表格形式发送shell脚本输出并发送邮件

zqdjd7g9  于 2022-11-29  发布在  Unix
关注(0)|答案(1)|浏览(254)

我是一个shell脚本,它会给予几行输出。下面是我从shell脚本中得到的输出。我的脚本流程是这样的:首先,它会检查我们是否有该文件,如果有,它应该给我文件名和修改日期。如果没有,它应该给我文件名,不要在表格中找到,并发送电子邮件。它还应该添加标题到输出。

CMC_daily_File.xlsx Not Found
CareOneHMA.xlsx Jun 11

输出量

File Name             Modified Date 
CMC_daily_File.xlsx   Not Found
CareOneHMA.xlsx       Jun 11

更新
脚本示例

#!/bin/bash

if [ -e /saddwsgnas/radsfftor/coffe/COE_daily_File.xlsx ]; then
    cd /sasgnas/radstor/coe/
    ls -la COE_daily_File.xlsx | awk '{print $9, $6"_"$7}'
else
    echo "CMC_COE_daily_File.xlsx Not_Found"
fi

输出量

CMC_COE_daily_File.xlsx Jun_11
9fkzdhlc

9fkzdhlc1#

我想我可以通过一个稍微修改过的脚本为您提供一些选项。我使用stat命令以更广泛的格式获取文件修改时间,并指定任意的、预定义的空格字符来分隔列数据。这样,您就可以专注于以原始格式显示内容,这也将允许包含空格的文件名的格式化报告,而不影响用于格式化/对齐列的逻辑。column命令被告知该分隔符,它会将列宽调整为每列中最宽的内容。(我只希望它还允许您指定要打印的列分隔符,但这不是它的特性/功能的一部分。)
我还添加了额外的AWK操作,希望您有兴趣使结果更加突出。

#!/bin/sh

#QUESTION:  https://stackoverflow.com/questions/74571967/how-to-send-shell-script-output-in-a-tablular-form-and-send-the-mail

SPACER="|"

SOURCE_DIR="/saddwsgnas/radsfftor/coe"
SOURCE_DIR="."

{
    printf "File Name${SPACER}Modified Date\n"
    #for file in COE_daily_File.xlsx
    for file in test_55.sh awkReportXmlTagMissingPropertyFieldAssignment.sh test_54.sh
    do
        if [ -e "${SOURCE_DIR}/${file}" ]; then
            cd "${SOURCE_DIR}"
            #ls -la "${file}" | awk '{print $9, $6"_"$7}'
            echo "${file}${SPACER}"$(stat --format "%y" "${file}" | cut -f1 -d\. | awk '{ print $1, $2 }' )
        else
            echo "${file}${SPACER}Not Found"
        fi
    done
} | column -x -t -s "|" |
awk '{
    ### Refer to:
    # https://man7.org/linux/man-pages/man4/console_codes.4.html
    # https://www.ecma-international.org/publications-and-standards/standards/ecma-48/
    if( NR == 1 ){
        printf("\033[93;3m%s\033[0m\n", $0) ;
    }else{
        print $0 ;
    } ;
}'

如果没有最后一个awk命令,该脚本的输出会话如下所示:

ericthered@OasisMega1:/0__WORK$ ./test_55.sh
File Name                                         Modified Date
test_55.sh                                        2022-11-27 14:07:15
awkReportXmlTagMissingPropertyFieldAssignment.sh  2022-11-05 21:28:00
test_54.sh                                        2022-11-27 00:11:34
ericthered@OasisMega1:/0__WORK$

使用最后一个awk命令,您将得到以下结果:

相关问题