2013-11-15 75 views
1

我已經掌握了「可能grep,但仍然不知道如何讀取file1中的行並將其粘貼爲file2中的列」的提示並且傳入用另一個,這是一個很好的:)awk,讀取file1中的行並將其輸出爲文件2中的並行columnS

我有一個CSV文件1這樣的:

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 Sh烏爾德像

至於我設法得到是這樣的:

[2]:http://oi41.tinypic.com/35ncxtt.jpg什麼我越來越

是否有可能解決這一???

我使用命令cat somefile.csv | grep 'Aname' > file1.csv,與Aname行創建文件1 <

cat someanotherfile.csv | grep 'Bname' >> file1.csv添加額外的行到file1

,然後使cat file1.csv | tr ',' '\n' > file2

我希望這是非常明顯的: )

+0

也許有人知道這個東西(改變行/列數據)有一個特殊的名稱或smt。,它會幫助我更容易谷歌... – Mod3

+0

這個過程被稱爲轉置。 [在bash中轉置一個文件]有一些很好的例子(http://stackoverflow.com/questions/1729824/transpose-a-file-in-bash)。 – Thor

回答

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) 
+0

老兄,我怎麼能像你? :D美麗! – Mod3

相關問題