首页 > 解决方案 > CSV 中的 NULL 没有分隔符

问题描述

我的 Linux 机器中有一个 csv 文件,我正在尝试进行一些查询。但是 csv 中的某些列具有 NULLS 并且它没有在分隔符内表示,所以我发现由于一致性而难以查询其他列。

现在的格式是:

col1,col2,col3,col4,col5... col23 
"val1","val2",NULL,"Val3","val4","val5",...,"val23"
"val1","val2","val2",NULL,"val4","val5",...,"val23"

我正在尝试在不同的列中替换此处的 NULL 以使用分隔符。

awk -F "," 'BEGIN {OFS="\",\""} $3 == "NULL" { $3 = "\"NULL\"" } {print $3}' file1.csv 

到目前为止,我已经尝试过使用 awk,但似乎没有任何效果。有没有更好的方法或者有人可以帮助使用上述命令?

标签: csvawksed

解决方案


考虑到您的 Input_file 与显示的示例相同,您能否尝试以下操作。

awk '
BEGIN{
  FS=OFS=","
}
{
  gsub(/NULL/,"\"&\"")
}
1' Input_file

推荐阅读