Это потому, что tr
выполняет только замену символа (или удаление).
Попробуйте sed
вместо.
echo '<hello><world>' | sed -e 's/</\n&/g'
Или awk
.
echo '<hello><world>' | awk '{gsub(/</,"\n<",$0)}1'
Или perl
.
echo '<hello><world>' | perl -pe 's/</\n</g'
Или ruby
.
echo '<hello><world>' | ruby -pe '$_.gsub!(/</,"\n<")'
Или python
.
echo '<hello><world>' \
| python -c 'for l in __import__("fileinput").input():print l.replace("<","\n<")'