将文件名添加到linux中文件的第一行

时间:2013-03-27 11:11:56

标签: linux cat

我收到了很多像这样的文件

 1   rs10488368     180568    T        ADD       11     -2.714       -7.016    6.213e-05    
 1    rs2906334     189547    C        ADD       11     -2.714       -7.016    6.213e-05   
 2   rs10092114     190451    T        ADD       11     -2.714       -7.016    6.213e-05    
 3    rs2906347     198834    C        ADD       11     -2.714       -7.016    6.213e-05

像这样命名为plinky.P1.assoc.linear,plinky.P2.assoc.linear等......

我使用cat *.assoc.linear > all_files.tx t将它们组合在一起,但最后我不知道哪一行来自哪个文件......

所以我希望得到的是一个包含所有文件的文件(plinky.P1.assoc.linear,plinky.P2.assoc.linear等...),如下所示:

   1   rs10488368     180568    T        ADD       11     -2.714       -7.016    6.213e-05  plinky.P1.assoc.linear    
   1    rs2906334     189547    C        ADD       11     -2.714       -7.016    6.213e-05  plinky.P1.assoc.linear       
   1   rs10092114     190451    T        ADD       11     -2.714       -7.016    2.253e-04  plinky.P1.assoc.linear    
   1    rs2906347     198834    C        ADD       11     -2.714       -7.016    6.213e-05  plinky.P1.assoc.linear    
   1   rs10488368     180568    T        ADD       11     -2.714       -7.016    4.513e-05  plinky.P2.assoc.linear    
   1    rs2906334     189547    C        ADD       11     -2.714       -7.016    6.913e-05  plinky.P2.assoc.linear    
   2   rs11988064     190422    C        ADD       11     -1.292       -1.329       0.2165  plinky.P2.assoc.linear    
   2   rs10092114     190451    T        ADD       11     -2.714       -7.016    6.213e-05  plinky.P3.assoc.linear    
   3    rs2906347     198834    C        ADD       11     -2.714       -7.016    6.213e-05  plinky.P3.assoc.linear    
   4   rs11782267     201877    C        ADD       11     -1.292       -1.329       0.2165  plinky.P3.assoc.linear    
   8    rs3008268     202123    T        ADD       11       -1.9        -1.25       0.2428  plinky.P3.assoc.linear    
   8   rs10435671     202498    T        ADD       11       -1.9        -1.25       0.2428  plinky.P3.assoc.linea

r

等...

但我觉得很难做到,所以不知道这是否可行......

感谢您的帮助!

弗洛

1 个答案:

答案 0 :(得分:2)

此解决方案将catsed结合起来,以获得所需的输出

for f in *.txt ; do cat $f | sed 's/$/ '$f'/'  >> all_files.txt; done