As partes \+ e \? de seu comando sed são extensões GNU - o sed compatível com POSIX não pode usar esses aspectos da regex estendida. Em vez disso, você pode usar \{1,\} e \{0,1\} . Tente isto:
LOCATION='3[01;34m\]'pwd |
sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#_#g"''
Para obter mais informações, consulte link e link .
Como alternativa, você pode ativar expressões regulares estendidas no OSX sed usando -E . Com isso você poderia fazer:
LOCATION='3[01;34m\]'pwd |
sed -E "s#\(/[^/]+/[^/]+/[^/]+/\).*\(/[^/]+/[^/]+\)/?#_#g"''
No entanto, isso não funcionará no GNU sed (usa -r para isso). Usar uma solução POSIX proporcionará melhor portabilidade.

