【发布时间】:2017-07-09 02:15:23
【问题描述】:
我有一个包含多行的文件,格式如下:
name1 a1 b3 c6 a3 b4 c9
name2 a7 b8 c7 a9 b10 c13
name3 a12 b9 c8
name4 a4 b34 c19 a7 b2 c10 a3 b5 c67
我需要在字母重复后换行(即在每个 a、b、c 之后),但保留原始名称(字段 1):
name1 a1 b3 c6
name1 a3 b4 c9
name2 a7 b8 c7
name2 a9 b10 c13
name3 a12 b9 c8
name4 a4 b34 c19
name4 a7 b2 c10
name4 a3 b5 c67
我尝试了一些类似的东西:
awk -F"\t" '{ for (i=2;i<=NF;i++) print $1"\t"$i }' file
但是i++ 包含每个字段,有没有办法对它们进行分组?
谢谢。
【问题讨论】:
-
字母会乱序吗?
c2a3b1? -
@Mark Setchell 是的,他们可以
-
他们会一直重复还是会有不重复的行?
-
我们可以得到
z1q2a1d7r0z2吗? -
@starter5: 请您也试试我提供的解决方案如下一次吗?