У меня есть вход этого формата:Regexp для удаления определенных столбцов
<apple1> <orange1> : <apple2> <orange2> : <apple3> <orange3> : ...
Этот вход является неопределенной длины и состоит из яблонь-оранжевый пар с различными оранжевыми и яблоневых частей, разделенных двоеточием.
Я хотел бы, чтобы это как выход:
<apple1> <orange1> : <orange2> : <orange3> : ...
I. е. все части яблока, но первые удалены.
Каждая часть яблока имеет ширину 14 символов, каждая оранжевая часть - 19 символов.
Я пытался что-то вроде этого:
sed -r 's/.{14}(.{19}):/\1:/g'
Но это всегда столкнулись с проблемами, пропустив первую часть яблока.
Может ли кто-нибудь предоставить регулярное выражение, решая эту задачу?
Реальный пример ввода:
appleappleapplorangeorangeorangeo:appleappleapplorangeorangeorangeo:appleappleapplorangeorangeorangeo
foofoofoofoofobarbarbarbarbarbarb:foofoofoofoofobarbarbarbarbarbarb:foofoofoofoofobarbarbarbarbarbarb
xxxxxxxxxxxxxxooooooooooooooooooo:ppppppppppppppqqqqqqqqqqqqqqqqqqq:nnnnnnnnnnnnnnttttttttttttttttttt
Вывод должен быть таким:
appleappleapplorangeorangeorangeo:orangeorangeorangeo:orangeorangeorangeo
foofoofoofoofobarbarbarbarbarbarb:barbarbarbarbarbarb:barbarbarbarbarbarb
xxxxxxxxxxxxxxooooooooooooooooooo:qqqqqqqqqqqqqqqqqqq:ttttttttttttttttttt
где «символ трубы»? – Kent
Извините, редактирование получилось диким. Я имел в виду толстую кишку. Вопрос редактируется. – Alfe
Как вы храните выход? Это имеет значение, потому что вы можете сделать что-то вроде 'head -c 14', чтобы получить первое яблоко в выходной файл. –