Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 将多个txt文件合并到csv-添加标题_Shell_Unix - Fatal编程技术网

Shell 将多个txt文件合并到csv-添加标题

Shell 将多个txt文件合并到csv-添加标题,shell,unix,Shell,Unix,我有多个txt文件,每个文件中只有一列,我正试图将它们合并到一个csv中。理想情况下,我希望每一列都有它们所来自的文件名,我被困在最后一部分 文本文件如下所示(2个示例,但我得到了更多): 所需输出: 目前,我正在这样做: paste-d','c*>all.csv 输出如下所示,它得到了所有列,但没有标题 你能帮我吗 如果它能帮助某人,那就谢谢了。我最终使用python并这样做: custom_paste() ( IFS=$(printf ',') # or IFS=$',' pri

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

文本文件如下所示(2个示例,但我得到了更多):

所需输出:

目前,我正在这样做:
paste-d','c*>all.csv
输出如下所示,它得到了所有列,但没有标题

你能帮我吗


如果它能帮助某人,那就谢谢了。我最终使用python并这样做:

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

custom_paste c* > all.csv
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)

请提供输入文件中的示例和预期结果output@Amaranta_Remedios-有多少个文本文件?这是一次性任务吗?我有40个这样的文本文件,每个都只有一列。每个文件的行数不一定每次都相同。实际上是非常可变的,但只有一列。我确实向我的.bash_配置文件添加了自定义命令,如下所示:
custom_paste()(IFS=$(printf',')或IFS=$,'printf''%s\n'$*“paste--“$@”)
但是,当我运行custom_paste c*>all.csv时,输出是空的。我刚刚在我的系统中测试了以下内容。您可以将其放入一个.sh文件中,只需运行脚本custom_paste(){IFS=$(printf',')或IFS=$,'printf'%s\n'$*“paste--“$@”}custom_paste D*>all.csvI did
nano custom_paste.sh!/bin/bash custom_paste(){IFS=$(printf',')或IFS=$,'printf'%s\n'$*“粘贴--“$@”}custom_paste c*>all.csv
/。custom_paste.sh
输出仍然是空的。custom_paste.sh文件和所有其他文件在哪里??它应该与存在的c*文件位于同一目录中。如果这样做,请确保您也将函数命名为其他名称,因为自定义粘贴以c开头,而您的文件名以c开头。从某种意义上讲,它可以工作,我得到一个输出,但所有列都只是合并到第一个列中。然后我只得到下一列中的标题
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)