合并多个txt文件到csv-添加标头

时间:2020-02-18 13:22:31

标签: shell unix

我有多个txt文件,每个文件只有一列,而我正尝试将它们全部合并为一个csv。理想情况下,我希望每一列都有它们来自的文件的名称,而我被困在最后一部分。

文本文件如下所示(2个示例,但我还有更多示例):

c.Daphnia.txt
geneA
geneB
geneC

c.Drosophila.txt
geneA
geneD
geneE

c.Mouse.txt
geneA
geneV
geneX

所需的输出: enter image description here

目前我正在这样做: paste -d',' c* > all.csv 输出看起来像这样,它获得了所有列,但没有标题。

enter image description here 你能帮我吗?

谢谢

2 个答案:

答案 0 :(得分:0)

custom_paste() (
  IFS=$(printf ',') # or IFS=$','
  printf '%s\n' "$*"
  paste -- "$@"
)

custom_paste c* > all.csv

答案 1 :(得分:0)

如果它可以帮助某人,我最终使用python并这样做:

import pandas as pd
df1=pd.read_csv('a.txt',names=['a'])
df2=pd.read_csv('b.txt',names=['b'])
df3=pd.read_csv('c.txt',names=['c'])
df4=pd.read_csv('d.txt',names=['d'])
df5=pd.read_csv('e.txt',names=['e'])

result=pd.concat([df1,df2,df3,df4,df5],axis=1)
result.to_csv('mergedfile.csv',index=False)