将多个tsv / csv文件或其内容合并到各自的列中,并按名称和名称顺序分隔

时间:2015-12-04 12:33:04

标签: bash csv unix awk

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

我想解析与文件名部分匹配的每个文件的内容。例如,我想聚合高苹果的文件内容,然后是低苹果等等。我还希望合并的文件按名称分隔(或标记),以便我可以知道它来自哪个部分。

为了聚合:

high-apple.tsv                  

low-apple.tsv                   

high-banana.tsv                 

low-banana.tsv                  

high-cherry.tsv                 

low-cherry.tsv                  

1 个答案:

答案 0 :(得分:2)

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

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

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