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
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