gpt4 book ai didi

mysql - 使用 sed 在字段周围添加引号,null 除外

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:43:46 28 4
gpt4 key购买 nike

我正在使用 mysql 客户端将表的记录导出到 CSV 文件中。一切正常,除非记录有空字段。

mysql --execute="SELECT * FROM users"| sed 's/\t/","/g;s/^/"/;s/$/"/;' > users.csv

生产

"John","Smith","john@smith.com","NULL","NULL","347-1234566" 

我怎样才能产生这样的结果,其中 NULL 值被添加到文件中而没有引号

"John","Smith","john@smith.com",NULL,NULL,"347-1234566" 

最佳答案

尝试:

mysql --execute="SELECT * FROM users"| sed 's/\t/","/g; s/^/"/; s/$/"/; s/"NULL"/NULL/g' > users.csv

您的命令的唯一变化是添加了 s/"NULL"/NULL/g

如果 sed 支持前瞻或后视正则表达式功能,则可能有更复杂的方法来执行此操作,但它没有此类功能。

例子

以这个制表符分隔的文件作为示例输入:

$ cat file
John Smith john@smith.com NULL NULL 347-1234566

您可以通过以下方式实现您想要的输出:

$ sed 's/\t/","/g; s/^/"/; s/$/"/; s/"NULL"/NULL/g' file
"John","Smith","john@smith.com",NULL,NULL,"347-1234566 "

关于mysql - 使用 sed 在字段周围添加引号,null 除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39779687/

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