Ini sedsolusinya:
$ echo ':29.06.2019 23:03:17' | sed 's/^://'
29.06.2019 23:03:17
Apa yang dilakukan perintah sed 's/^://'adalah mengganti skarakter titik dua :dari awal ^setiap baris dengan string kosong //.
Berikut adalah awksolusi rumit , tempat kami mengubah pemisah bidang menjadi ^:, yang dijelaskan di atas, dan menampilkan bidang kedua (dari setiap baris):
$ echo ':29.06.2019 23:03:17' | awk -F'^:' '{print $2}'
29.06.2019 23:03:17
Tugas dapat diselesaikan juga dengan grep( penjelasan ), mungkin ini bisa menjadi solusi tercepat untuk sejumlah besar data:
$ echo 'Logfile started :29.06.2019 23:03:17' | grep -Po '^Logfile started :\K.*'
29.06.2019 23:03:17
Atau proses file secara langsung dengan perintah berikut, di mana batasan ^dihapus:
grep -Po 'Logfile started :\K.*' process.log
Hal di atas dapat dicapai juga oleh seddan menangkap kelompok ()->\1:
sed -nr 's/^.*Logfile started :(.*)$/\1/p' process.log
Di mana ekspresi ^.*<something>.*$akan cocok dengan seluruh baris, yang berisi <something>. Perintah s/old/new/akan mengganti baris ini dengan konten dari kelompok tangkapan pertama (ekspresi dalam tanda kurung bisa lebih konkret). Opsi ini -rmemungkinkan ekspresi reguler yang diperluas. Opsi -nakan menekan output normal seddan akhirnya perintah pakan mencetak yang cocok.