Используя простое решение sed
, POSIX-ly
sed 's/[A-Z]\([:][0-9][0-9][A-Z]\)/\n\1/g'
Если вы можете использовать awk
и иметь доступный вариант GNU, вы можете позвонить patsplit()
, чтобы разделить шаблон :[0-9][0-9][A-Z]
и начните замену со 2-го экземпляра и далее
awk '{ n = patsplit($0, arr, /[:][0-9][0-9][A-Z]/)
for (iter = 2; iter <= n; iter++)
sub(arr[iter], ORS arr[iter]);
}1'
или с любым POSIX awk
awk '{ n = split($0, arr, /[:]/)
for (iter = 3; iter <= n; iter++)
if ( match(arr[iter], /[0-9][0-9][a-zA-Z]/) )
sub(":"arr[iter], ORS ":" arr[iter]);
}1'