gpt4 book ai didi

bash - 如何将文件拆分为更小的文件(每行一个文件)[拆分不起作用]

转载 作者:行者123 更新时间:2023-11-29 09:38:24 25 4
gpt4 key购买 nike

我正在尝试将一个非常大的文件每行拆分为一个新文件。

为什么?它将作为 Mahout 的输入。但是有太多的行和没有足够的后缀来拆分。

有没有办法在 bash 中做到这一点?

最佳答案

通过拆分增加后缀长度

如果你坚持使用split,那你就得增加你的后缀长度。例如,假设您的文件中有 10,000 行:

split --suffix-length=5 --lines=1 foo.txt

如果您真的想使用这种方法,您甚至可以使用 wc 命令和一些 shell 算法动态设置后缀长度。例如:

file='foo.txt'
split \
--suffix-length=$(( $(wc --chars < <(wc --lines < "$file")) - 1 )) \
--lines=1 \
"$file"

改用 Xargs

然而,无论如何,以上内容实际上只是一个拼凑。更正确的解决方案是使用 GNU findutils 包中的 xargs 每行调用一次命令。例如:

xargs --max-lines=1 --arg-file=foo.txt your_command

这将一次将一行传递给您的命令。这是一种更加灵活的方法,将显着减少磁盘 I/O。

关于bash - 如何将文件拆分为更小的文件(每行一个文件)[拆分不起作用],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19183963/

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