【发布时间】:2017-02-17 16:08:31
【问题描述】:
我有一个这种格式的输入:
<apple1> <orange1> : <apple2> <orange2> : <apple3> <orange3> : ...
此输入的长度未定义,由带有不同橙色和苹果部分的苹果-橙色对组成,用冒号分隔。
我想把它作为输出:
<apple1> <orange1> : <orange2> : <orange3> : ...
我。 e.除第一个外的所有苹果部件。
每个苹果部分宽 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
【问题讨论】:
-
pipe symbol在哪里? -
抱歉,编辑太疯狂了。我的意思是冒号。问题已编辑。
-
你是如何存储输出的?这很重要,因为您可以执行
head -c 14之类的操作来将第一个苹果放入输出中。 -
就此而言,您的输入是什么样的?
-
@Alfe 你能发布一个真实的例子吗?我的意思是,对于真正的苹果/橙子,3-4 列就足够了