首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要替换文本中的逗号(BASH)

需要替换文本中的逗号(BASH)
EN

Stack Overflow用户
提问于 2019-01-18 01:30:05
回答 2查看 83关注 0票数 0

再试一次...

我有一个调查,我正在尝试用SQL分析,有些人使用逗号进行了评论(即“今天病了,需要维生素C”)当我试图将它加载到SQL中时,逗号是作为分隔符读取的,而不是读取最后一列。

我的csv是用逗号分隔的,所以我知道发生了什么,我只是不知道如何只更改文本中的逗号。

我应该以制表符分隔的方式从google sheets下载文件吗?

我可以使用sed、grep、tr或awk将该列(注释部分)中的任何逗号细分为空格吗?

我在postgresSQL中设置了questionnaire表,并将comments列设置为TEXT

我将VassarXCTFReadinessQuestionnaire.csv保存在我的服务器中。

我使用以下命令将VassarXCTFReadinessQuestionnaire.csv转换为quest_ready.csv

代码语言:javascript
复制
cat VassarXCTFReadinessQuestionnaire.csv | cut -d',' -f1-11 | grep -v ',NA' > quest_ready.csv

VassarXCTFReadinessQuestionnaire.csv中的实际数据

W/注释列中的注释和逗号:

代码语言:javascript
复制
11/7/18,Jackson Picker,3,3,3,3,4,3,7,"feeling alright, same situation with the hip.",4.1,,

没有评论:

代码语言:javascript
复制
11/7/18,Hannah Happy,4,2,2,3,3,4,9,,4.35,,

不带逗号的评论:

代码语言:javascript
复制
11/6/18,Hannah Happy,4,2,2,3,3,4,9,All Good!,4.35,,

quest_ready.csv中的预期结果为:

代码语言:javascript
复制
11/7/18,Jackson Picker,3,3,3,3,4,3,7,"feeling alright same situation with the hip.",4.1,,
11/7/18,Hannah Happy,4,2,2,3,3,4,9,,4.35,,
11/6/18,Hannah Happy,4,2,2,3,3,4,9,All Good!,4.35,,

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2019-01-18 01:44:35

粗略的实现,但是:

代码语言:javascript
复制
#!/bin/bash

string=$(grep -o '".*"' my.csv | tr ',' ' ')

before=$(cat my.csv | cut -d',' -f1-9 | grep -v ',NA')
after=$(cat my.csv | cut -d',' -f12 | grep -v ',NA')
echo "${before},${string},${after}"

输出:

11/7/18,Jackson Pierce,3,3,3,3,4,3,7,"feeling alright same situation with the hip.",3.56

票数 0
EN

Stack Overflow用户

发布于 2019-01-18 02:24:38

当分隔符可以出现在字段内时,不能使用cut选择字段;它不提供任何转义分隔符的方法。

相反,您应该直接从VassarXCTFReadinessQuestionnaire.csv复制到数据库表中,而不是先尝试转换它。

COPY命令中使用QUOTE参数,这样它就可以识别带引号的字段,并且不会使用内部的逗号作为分隔符。

代码语言:javascript
复制
COPY table_name 
FROM '/home/server/file_name.csv' 
DELIMITER ',' 
QUOTE '"'

如果此文件包含与表列不对应的额外字段,请参见

Copy a few of the columns of a csv file into a table

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54241309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档