How to format The mail Output of Bash Shell Script

ⅰ亾dé卋堺 提交于 2019-12-08 04:58:43

问题


I have a Bash shell script which send an email in every day at certain time. the code is as follows:

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 

This script is giving output in Single column. but I want the Output in two columns.

  • 1st column with files of first_dir=/test1
  • 2nd column with files of second_dir=/test2

回答1:


If you want them separated like that, don't join them together in the first place

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


来源:https://stackoverflow.com/questions/21281454/how-to-format-the-mail-output-of-bash-shell-script

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!