Lệnh sed của tôi là,
sed '/(.*:)/d' <<< 'abcd:bcde:cdeaf'
Nó phải trở lại,
bcde:cdeaf
(tức là) tất cả các ký tự trước dấu hai chấm đầu tiên trong dòng và dấu hai chấm phải được loại bỏ.
Nhưng điều này không loại bỏ bất cứ điều gì.
Sự nhầm lẫn của tôi phát sinh chủ yếu là do,
1) Parens cho khớp mẫu có cần phải được thoát trong sed regex-es không?
2) Trong cả hai trường hợp (với thoát / không thoát), nó không hoạt động. Tôi đã thử
sed -E '/\\(.*:\\)/d' <<< 'abcd:bcde'
printf "%s\n" "${line#*:}"
...
while read line
cái được $line
, có lẽ sed
nên được ưu tiên.
sed 's/[^:]*://'
. Và nhân tiện, bạn khôngd
xóa dòng đầu vào, nhân tiện, bạn đang sửa đổi nó bằngs///
lệnh ubstlation. Bạn phải thay thế bit không dấu hai chấm đầu tiên và dấu hai chấm theo sau nó không có gì cả.