linux - 如何填充 CSV 文件缺失的列

标签 linux bash postgresql shell csv

我对一些来自软件的 CSV 文件有问题,我想用它来导入 PostgreSQL(从 CSV 复制功能)。问题是最后一些列像这样丢失了(标题字母,值数字,TAB 分隔符 _):

a_b_c_d
1_2_3_4
5_6_7       <- last column missing
8_9_0_1
2_6_7       <- last column missing

COPY in_my_table FROM file.csv 结果是: 错误:缺少“d”列的数据

用于导入的正确文件示例:

a_b_c_d
1_2_3_4
5_6_7_       <- null column but not missing
8_9_0_1
2_6_7_       <- null column but not missing

我的问题:bash/linux shell 中是否有一些命令可以添加 TAB 定界符以制作包含所有列的正确/完整/填充的 csv 文件。

感谢您的帮助。

最佳答案

好的,事实上我发现了这个:

awk -F'\t' -v OFS='\t' 'NF=50' input.csv > output.csv 

其中 50 是 TAB + 1 的数量。

关于linux - 如何填充 CSV 文件缺失的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43636213/

相关文章:

windows - 我应该在 Linux 还是 Windows 中交叉编译?

sql - 如果为真,则计算行数,然后检查它是否包含一行

linux - 如何防止看门狗消息淹没 dmesg

linux - 需要一个好的 Linux 十六进制编辑器

bash - 将命令作为参数传递给 bash 脚本

bash 。生成随机 mac 地址(单播)

bash - 有没有办法枚举所有内部 docker 接口(interface)?

sql - 我的 Postgres 数据库没有使用我的索引;我解决了它,但不明白修复,任何人都可以解释发生了什么?

django - 表上的插入或更新违反了外键约束(错误)

linux - ld-linux --验证退出码