Perintah sed saya adalah,
sed '/(.*:)/d' <<< 'abcd:bcde:cdeaf'
Itu harus kembali,
bcde:cdeaf
(Yaitu) semua karakter sebelum titik dua pertama di baris dan titik dua itu sendiri harus dihapus.
Tapi ini tidak menghapus apa pun.
Kebingungan saya muncul terutama karena,
1) Apakah orangtua untuk pencocokan pola harus melarikan diri di dalam regex-es?
2) Dalam kedua kasus (dengan melarikan diri / tanpa escpaing), itu tidak berfungsi. Saya mencoba,
sed -E '/\\(.*:\\)/d' <<< 'abcd:bcde'
printf "%s\n" "${line#*:}"
...
while read line
yang mendapat $line
, mungkin sed
harus lebih disukai.
sed 's/[^:]*://'
. Dan Anda tidakd
menghapus jalur input, omong-omong, Anda memodifikasinya dengans///
perintah ubstitusi. Anda harus mengganti bit pertama yang bukan titik dua dan titik dua yang mengikutinya tanpa apa-apa.