İşte bir sedçözüm:
$ echo ':29.06.2019 23:03:17' | sed 's/^://'
29.06.2019 23:03:17
Komutun sed 's/^://'yaptığı, her satırın başındaki siki nokta karakterini boş dize ile değiştirmek .:^//
awkAlan ayırıcısını ^:yukarıda açıklandığı gibi değiştirdiğimiz ve ikinci alanı (her satırın) çıktısını verdiğimiz zor bir çözüm :
$ echo ':29.06.2019 23:03:17' | awk -F'^:' '{print $2}'
29.06.2019 23:03:17
Görev de grep( açıklama ) ile gerçekleştirilebilir , muhtemelen bu büyük miktarda veri için en hızlı çözüm olabilir:
$ echo 'Logfile started :29.06.2019 23:03:17' | grep -Po '^Logfile started :\K.*'
29.06.2019 23:03:17
Veya dosyayı doğrudan sınırlamanın ^kaldırıldığı aşağıdaki komutla işleyin:
grep -Po 'Logfile started :\K.*' process.log
Yukarıdakiler aynı zamanda sedve yakalama grupları tarafından da gerçekleştirilebilir ()->\1:
sed -nr 's/^.*Logfile started :(.*)$/\1/p' process.log
İfadenin ^.*<something>.*$, tüm satırı eşleştireceği yer <something>. Komut s/old/new/, bu satırı ilk yakalama grubunun içeriğiyle değiştirir (parantez içindeki ifade daha somut olabilir). Bu seçenek -r, genişletilmiş düzenli ifadeleri etkinleştirir. Seçenek -nnormal çıktısını bastıracak sedve son olarak komut peşleşmeleri yazdıracaktır.