Aqui está uma sedsolução:
$ echo ':29.06.2019 23:03:17' | sed 's/^://'
29.06.2019 23:03:17
O que o comando sed 's/^://'está fazendo é substituir so caractere de dois pontos :do início ^de cada linha pela string vazia //.
Aqui está uma awksolução complicada , na qual alteramos o separador de campos para ^:, descrito acima, e produzimos o segundo campo (de cada linha):
$ echo ':29.06.2019 23:03:17' | awk -F'^:' '{print $2}'
29.06.2019 23:03:17
A tarefa poderia ser realizada também com grep( explicação ), provavelmente esta poderia ser a solução mais rápida para grande quantidade de dados:
$ echo 'Logfile started :29.06.2019 23:03:17' | grep -Po '^Logfile started :\K.*'
29.06.2019 23:03:17
Ou processe o arquivo diretamente pelo seguinte comando, onde a limitação ^é removida:
grep -Po 'Logfile started :\K.*' process.log
O acima pode ser alcançado também por sedgrupos de captura e ()->\1:
sed -nr 's/^.*Logfile started :(.*)$/\1/p' process.log
Onde a expressão ^.*<something>.*$corresponderá à linha inteira, que contém <something>. O comando s/old/new/substituirá essa linha pelo conteúdo do primeiro grupo de captura (a expressão entre colchetes pode ser mais concreta). A opção -rativa as expressões regulares estendidas. A opção -nsuprimirá a saída normal de sede, finalmente, o comando pimprimirá as correspondências.