【问题标题】:Merge multiple tsv/csv files or their contents in their respective columns separated by names and names order合并多个 tsv/csv 文件或它们的内容在它们各自的列中,按名称和名称顺序分隔
【发布时间】:2015-12-04 12:33:03
【问题描述】:

我有文件 high-apple.tsv、low-apple.tsv、high-banana.tsv、low-banana.tsv、high-cherry.tsv、low-cherry.tsv。它们都有绿色、蓝色、红色和黄色的列。

我想解析与文件名部分匹配的每个文件的内容。例如,我想聚合 high-apple 后跟 low-apple 的文件内容等等。我还希望通过名称分隔(或标记)合并的文件,以便我可以知道它的来源。

聚合顺序:

high-apple.tsv                  

low-apple.tsv                   

high-banana.tsv                 

low-banana.tsv                  

high-cherry.tsv                 

low-cherry.tsv                  

【问题讨论】:

  • 请注意,这太宽泛了。更好的edit,显示minimal reproducible example 以及到目前为止您尝试过的内容。否则,我们没有足够的信息来帮助您。
  • @fedorqui 请查看编辑。
  • 嗯,恐怕还是挺宽泛的。一个例子有时可以比大量的文字更好的解释。尝试一下,这样我们就知道您的目标是什么。

标签: bash csv unix awk


【解决方案1】:

假设聚合的意思是连接未更改的内容,这样的事情可能会起作用...

$ for f in apples bananas; do echo "contents of $f" >> fruits; cat $f >> fruits; done

脚本将文件内容与“contents of {filename}”的标题连接起来。如果您的所有文件都采用相同的格式,则您不需要任何其他复杂性。您可以按正确的顺序将文件列为“apples bananas ...”。

【讨论】:

  • 谢谢,正是我需要的。
猜你喜欢
  • 2019-10-24
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 2019-07-13
  • 2018-05-20
  • 2021-06-03
相关资源
最近更新 更多