Вы можете проанализировать его с помощью awk:
$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $1}'
tree.sh
$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $2}'
1
$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $3}'
abc
$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $4}'
xyz
Поскольку исходный вопрос был изменен, я добавляю параметр sed:
$ echo "tree.sh:1:abc xyz" | sed -e "s/:/ - /g"
tree.sh - 1 - abc xyz