A maioria das versões sednão suporta expressões regulares de estilo perl (a única que eu conheço que faz é "super sed", ssed , e que não foi atualizada desde 2005) e não suporta o ?modificador não ganancioso.
Se você quiser usar esse regexp exato, a solução mais fácil seria usar perl:
$ echo "a:b:c" | perl -pe 's/(.+?):.+/$1/'
a
Caso contrário, modifique o regex para que a captura corresponda a qualquer caractere exceto dois pontos:
A maioria das versões
sed
não suporta expressões regulares de estilo perl (a única que eu conheço que faz é "super sed", ssed , e que não foi atualizada desde 2005) e não suporta o?
modificador não ganancioso.Se você quiser usar esse regexp exato, a solução mais fácil seria usar
perl
:Caso contrário, modifique o regex para que a captura corresponda a qualquer caractere exceto dois pontos: