awk,读取file1中的rowS并将其作为file2中的并行列输出

时间:2013-11-15 11:40:36

标签: unix csv awk grep row

我已经掌握了“可能是grep,但仍然没有得到如何读取file1中的行并将其粘贴为file2中的列”问题的提示,并附带另一个,这是一个很好的:)

我有一个像这样的csv文件:

Aname,4.999165E-08,5.99986E-08,7.000066E-08,8.000618E-08,8.999692E-08,9.998538E-08,1.099699E-07,1.199585E-07,1.199579E-07,1.299462E-07,1.349502E-07,1.3495E-07,1.349501E-07,1.349503E-07,2.000009E-07,2.999739E-07,
Bname,2.269E-05,3.902E-05,6.580E-05,9.907E-05,1.419E-04,1.930E-04,2.530E-04,3.212E-04,3.284E-04,4.090E-04,4.505E-04,4.672E-04,4.294E-04,4.590E-04,1.257E-03,2.794E-03, 
Cname,487.3,484.8,482.7,480.9,479.2,477.9,476.7,475.6,475.4,474.6,474.2,473.8,474.1,473.6,469.5,466.1,

这是一个包含三行(Aname,Bname,Cname)的文件,我试图将这些行输出到file2中的并行列中,如下所示:

[1]:http://oi41.tinypic.com/i6h1jt.jpg应该看起来像

据我设法得到的是:

[2]:http://oi41.tinypic.com/35ncxtt.jpg我得到了什么

有可能解决这个问题吗?

我使用命令cat somefile.csv | grep 'Aname' > file1.csv来创建带有Aname行<

的file1

cat someanotherfile.csv | grep 'Bname' >> file1.csv用于向file1添加其他行

然后制作列cat file1.csv | tr ',' '\n' > file2

我希望它足够清楚:)

1 个答案:

答案 0 :(得分:1)

paste <(awk -F , '/Aname/{for(i=1;i<=NF;i++) print $i,","}' file.csv) <(awk -F , '/Bname/{for(i=1;i<=NF;i++) print $i,","}' file.csv) <(awk -F , '/Cname/{for(i=1;i<=NF;i++) print $i}' file.csv)