【问题标题】:Combine multiple csv files with filenames in it as rows on mac terminal将多个 csv 文件与其中的文件名组合为 mac 终端上的行
【发布时间】:2021-08-18 14:14:14
【问题描述】:

我有多个 csv 文件。我想将它们组合在一个文件中,并在终端上这样做;

"cat *.csv >combined.csv"

这可行,但我需要在合并之前将文件名添加到所有这些 csv 文件中,以便了解组合版本中的数据来源。现在,我把它组合起来了;

a1, a2, a3, a4
b1, a2, a3, a4

我想将文件名作为行添加到开头

file1, a1, a2, a3, a4
file2, b1, a2, a3, a4

有没有办法在mac终端上做到这一点?

【问题讨论】:

    标签: excel macos csv merge terminal


    【解决方案1】:

    你可以创建一个shell脚本

    #!/bin/sh
    
    rm combined.csv
    for f in *.csv
    do
      sed -e "s/^/${f},/" $f >> combined.csv
    done
    

    它将在combined.csv 文件中生成以下内容:

    file1.csv,a1, a2, a3, a4
    file2.csv,b1, a2, a3, a4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多