Il mio comando sed è:
sed '/(.*:)/d' <<< 'abcd:bcde:cdeaf'
Deve tornare,
bcde:cdeaf
(vale a dire) tutti i caratteri prima dei primi due punti nella linea e i due punti stessi devono essere rimossi.
Ma questo non sta rimuovendo nulla.
La mia confusione deriva principalmente da,
1) Le parentesi per il pattern matching devono essere sfuggite all'interno di sed regex-es?
2) In entrambi i casi (con escape / no escpaing), non funziona. Provai,
sed -E '/\\(.*:\\)/d' <<< 'abcd:bcde'
printf "%s\n" "${line#*:}"...
while read lineche ottiene il $line, probabilmente seddovrebbe essere preferito.
sed 's/[^:]*://'. E non staideliminando la riga di input, a proposito, la stai modificando con uns///comando ubstitution. Devi sostituire il primo bit non i due punti e i due punti che lo seguono senza nulla.