gpt4 book ai didi

linux - pg_restore 分隔符

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:59 26 4
gpt4 key购买 nike

我有一个 Postgresql 转储(使用 pg_dump 创建,自定义压缩格式)。我想将它 pg_restore 到 STDOUT,但用管道替换制表符分隔。我试过只使用通过 tr 的管道,但我确实有大量实际包含制表符的文本字段,而 tr 显然不尊重引号。有数百亿行的输出(压缩文件> 500 GB),所以我确实需要一个相对高效的解决方案。

最佳答案

如果一定要快,就用C。保存

#include <stdio.h>
int main()
{
int c, quoted = 0;
while (c = getchar(), c != EOF)
{
if (c == '"') quoted = !quoted;
if (c == '\t' && !quoted) c = '|';
putchar(c);
}
return quoted;
}

G。作为 bartab.c,使用 gcc bartab.c -o bartab 编译,并通过生成的程序进行管道传输。

关于linux - pg_restore 分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13485238/

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