gpt4 book ai didi

bash - 将 csv 文件拆分成多个部分,复制标题

转载 作者:行者123 更新时间:2023-12-05 09:23:35 24 4
gpt4 key购买 nike

我想要一种快速的方法来将一个 csv 文件分成 N 个大致相等的部分,并使每个部分都将原始标题作为第一行。到目前为止,我已经想出了这个,它有效 (N=5):

split -da 4 -l $((`wc -l < foo.csv`/5)) foo.csv foo --additional-suffix=".csv"
for f in `ls foo0*.csv`;do sed -i "1s/^/`head -n 1 foo.csv`\n/" $f; done;

有没有人知道如何将它变成一个单行文件,我通过拆分到 for 循环而不是运行 ls 命令来提供新创建的文件。

谢谢!

最佳答案

您根本不需要 for 循环。你可以简单地这样做:

sed -i "1s/^/`head -n 1 foo.csv`\n/" foo0*.csv

我认为您不能通过 sed 提供新创建的文件,因为 split 不会为您提供新文件名。

如果你真的想要一行,你可以用&&连接两个语句:

split -da 4 -l $((`wc -l < foo.csv`/5)) foo.csv foo --additional-suffix=".csv" && sed -i "1s/^/`head -n 1 foo.csv`\n/" foo0*.csv

关于bash - 将 csv 文件拆分成多个部分,复制标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20954480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com