用sed增加重复行的问题!

用sed增加重复行的问题!

问题如下:
[cynthia@localhost weixing]$ cat wx.fpf
FPERF
WELL      L
W2-20-15
W2-20-16
W2-20-17
W2-20-18
W2-20-20
W2-21-15
W2-21-16
W2-21-17
W2-21-18
W2-21-19
W2-21-20
W2-22-15
W2-22-16
W2-22-17
W2-22-18
W2-22-19
W2-22-21
W2-23-16
W2-23-18
W2-23-19
W2-23-20
W2-24-17
W2-24-19
W2-24-20
将所有一以W开头的行,重复6遍,并且在行尾加上行号,最终结果如下形式:
W2-20-15  1
W2-20-15  2
W2-20-15  3
.
.
.
W2-20-15  6
在VI下,用如下命令:%!sed -n '{p;a \1;p;a \2;p;a \3;...p;a \6;}',提示错误,不能执行,采取另一种方法,编辑sed脚本,如下:
[cynthia@localhost weixing]$ cat fpf.sed
/^W/ {p;
      a \
      1
      ;
      p;
      a \
      2
      ;
      p;
      a \
      3
      ;
      p;
      a \
      4
      ;
      p;
      a \
      5
      ;
      p;
      a \
      6
      ;
      p;
      }
执行部分(很长)结果如下:
W2-24-20
W2-24-20
W2-24-20
W2-24-20
W2-24-20
W2-24-20
W2-24-20
      1
      2
      3
      4
      5
      6
结果变成这个形式,那么脚本错误在哪里?      
不太明白楼主的意思

以W开头的每行重复六遍
如果这行本来已经有3行, 那就要总共打印 3 x 6行吗?
另外的行号是第这一行重复几次(也就是值为 1 ~ 6 )
还是第一行到最后一行的顺序行号呢

不管怎么样, 我觉得awk可能更简单。。。      
我发现,在sed中,a命令似乎不能重复使用,而且会于"{"和"}"发生冲突。重新说明一下:
[ccc@grand ss]$ cat ok
N2-20-15
N2-20-16
#该文本有两行,要将每行重复2遍,并且在行尾加上行号!
[ccc@grand ss]$ sed -n 'p;a \1;p;a \2;' ok
N2-20-15
1;p;a 2;
N2-20-16
1;p;a 2;
a命令无法执行两次!
[ccc@grand ss]$ cat ok.sed
{p
a\
1
p
a\
2
}
[ccc@grand ss]$ sed -f ok.sed ok
N2-20-15
N2-20-15
N2-20-15
1
2
N2-20-16
N2-20-16
N2-20-16
1
2
按程序原意,每行输出后,再输出行号,可是结果是先输出了所有行,作后输出了所有行号!真是奇怪!      
很复杂的样子,如 jiahuan 所说,awk 可能是最佳选择      
awk确实是最佳选择!