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.