我正在将一个非常庞大的文件加载到 postgresql 数据库中。为此,我首先split在文件中使用获取较小的文件(每个 30Gb),然后使用GNU Parallel和将每个较小的文件加载到数据库中psql copy。
问题是分割文件大约需要7个小时,然后它开始每个核心加载一个文件。我需要的是一种方法来告诉split它每次完成写入文件时将文件名打印到 std 输出,以便我可以将其通过管道传输到Parallel它并在split完成写入时开始加载文件。像这样的东西:
split -l 50000000 2011.psv carga/2011_ | parallel ./carga_postgres.sh {}
Run Code Online (Sandbox Code Playgroud)
我已阅读split手册页,但找不到任何内容。有没有办法用split或任何其他工具来做到这一点?
我正在使用运行 Suse Enterprise 11.1 的服务器。我需要为所有用户和所有 shell 添加一些位置到路径中。有没有一种很好且简单的方法来做到这一点,或者我是否必须修改每个 shell 的配置文件。
另外我不知道这是否是 suse 的默认配置,或者是否有人把服务器搞砸了,但是没有 /etc/profile 也没有 /etc/shellnameprofile.local
我该如何存档?请帮忙。