Mi comando sed es,
sed '/(.*:)/d' <<< 'abcd:bcde:cdeaf'
Debe volver,
bcde:cdeaf
(es decir, todos los caracteres anteriores al primer colon de la línea y el mismo colon deben eliminarse).
Pero esto no elimina nada.
Mi confusión surge principalmente debido a,
1) ¿Es necesario escapar a los parens para la coincidencia de patrones dentro de las expresiones regulares sed?
2) En cualquier caso (con escape / sin escpaing), no está funcionando. Lo intenté,
sed -E '/\\(.*:\\)/d' <<< 'abcd:bcde'
printf "%s\n" "${line#*:}"
...
while read line
que obtiene el $line
, probablemente sed
debería preferirse.
sed 's/[^:]*://'
. Y no estád
eligiendo la línea de entrada, por cierto, la está modificando con uns///
comando de sustitución. Debe reemplazar el primer bit que no es de dos puntos y el punto que le sigue con nada en absoluto.