Este comando sed executa um regex que deve ser útil para sua tarefa:
sed 's#\(/[^/]\+/[^/]\+/\).*\(/[^/]\+/[^/]\+\)/\?#...#g'
Teste:
PS1PWD_REGEX='s#\(/[^/]\+/[^/]\+/\).*\(/[^/]\+/[^/]\+\)/\?#...#g'
$ echo "~/apps/webs/2014/" | sed $PS1PWD_REGEX
~/apps/webs/2014/
$ echo "~/apps/webs/chip/mips/2014/" | sed $PS1PWD_REGEX
~/apps/webs/.../mips/2014
$ echo "~/apps/webs/chip/mips/2014" | sed $PS1PWD_REGEX
~/apps/webs/.../mips/2014
$ echo "/apps/webs/chip/mips/clips/2014" | sed $PS1PWD_REGEX
/apps/webs/.../clips/2014
$ echo "/" | sed $PS1PWD_REGEX
/
$ echo "~" | sed $PS1PWD_REGEX
~
Você pode então configurar seu perfil nas linhas:
export PS1='[\u@\h 'pwd | sed "s#\(/[^/]\+/[^/]\+/\).*\(/[^/]\+/[^/]\+\)/\?#...#g"']\$ '
Eu mesmo prefiro um prompt multilinha que dá muito espaço para caminhos longos na primeira linha.