Моя команда sed -
sed '/(.*:)/d' <<< 'abcd:bcde:cdeaf'
Должно вернуться,
bcde:cdeaf
(т.е.) все символы перед первым двоеточием в строке и само двоеточие должны быть удалены.
Но это ничего не убирает.
Моя путаница возникает в основном из-за,
1) Нужно ли экранировать паренов для сопоставления с образцом внутри регулярных выражений sed?
2) В любом случае (с выходом / без выхода) он не работает. Я старался,
sed -E '/\\(.*:\\)/d' <<< 'abcd:bcde'
printf "%s\n" "${line#*:}"...
while read lineчто получает $line, вероятно, sedдолжно быть предпочтительным.
sed 's/[^:]*://'. И вы неdeleting входной линии, кстати, вы изменяете его с помощьюs///команды ubstitution. Вы должны заменить первый не двоеточие и двоеточие, которое следует за ним, вообще ни с чем.