如何格式化Bash Shell脚本的邮件输出

时间:2014-01-22 11:18:45

标签: bash shell email sh

我有一个Bash shell脚本,可以在特定时间每天发送一封电子邮件。 代码如下:

first_dir=/test1 second_dir=/test2

email=me@me.com

allfiles=$(find /test1 /test2 -maxdepth 1 | sort) IFS=$'\n'

while true do sleep 24h

[ "$allfiles" != "" ] &&
    find $allfiles -maxdepth 1 -printf '%Tc\t%s\t%p\n' |
    mail -s "List Of All Files" "$email"

files="$allfiles"  

done 

此脚本在单列中提供输出。 但我希望输出分为两列。

  • 第一栏,文件为first_dir = / test1
  • 第二栏,文件为second_dir = / test2

1 个答案:

答案 0 :(得分:4)

如果你想让它们像那样分开,不要把它们放在一起

first_dir=/test1
second_dir=/test2
while sleep 24h; do
    first_files=$(find $first_dir -maxdepth 1 -printf '%Tc\t%s\t%p\n')
    second_files=$(find $second_dir -maxdepth 1 -printf '%Tc\t%s\t%p\n')
    paste <(sort -t $'\t' -k 3,3 <<< "$first_files") \
          <(sort -t $'\t' -k 3,3 <<< "$second_files") |
    mail -s "List Of All Files" "$email"
done