Oto sedrozwiązanie:
$ echo ':29.06.2019 23:03:17' | sed 's/^://'
29.06.2019 23:03:17
Polecenie sed 's/^://'zastępuje sznak dwukropka :na początku ^każdego wiersza pustym ciągiem //.
Oto trudne awkrozwiązanie, w którym zmieniamy separator pól na ^:opisany powyżej i wyprowadzamy drugie pole (każdej linii):
$ echo ':29.06.2019 23:03:17' | awk -F'^:' '{print $2}'
29.06.2019 23:03:17
Zadanie można wykonać również za pomocą grep( objaśnienia ), prawdopodobnie jest to najszybsze rozwiązanie dla dużej ilości danych:
$ echo 'Logfile started :29.06.2019 23:03:17' | grep -Po '^Logfile started :\K.*'
29.06.2019 23:03:17
Lub przetworz plik bezpośrednio za pomocą następującego polecenia, w którym ograniczenie ^zostanie usunięte:
grep -Po 'Logfile started :\K.*' process.log
Powyższe można osiągnąć również poprzez sedprzechwytywanie grup ()->\1:
sed -nr 's/^.*Logfile started :(.*)$/\1/p' process.log
Gdzie wyrażenie ^.*<something>.*$pasuje do całej linii, która zawiera <something>. Polecenie s/old/new/zastąpi ten wiersz treścią pierwszej grupy przechwytywania (wyrażenie w nawiasach może być bardziej konkretne). Opcja -rwłącza rozszerzone wyrażenia regularne. Opcja -npominie normalne wyjście, seda na końcu polecenie pwydrukuje dopasowania.