为了账号安全,请及时绑定邮箱和手机立即绑定

使用awk高效解析CSV的最健壮的方法是什么?

使用awk高效解析CSV的最健壮的方法是什么?

狐的传说 2019-06-20 10:23:59
使用awk高效解析CSV的最健壮的方法是什么?这个问题的目的是提供一个规范的答案。给定由Excel或其他带有嵌入换行符的工具生成的CSV,嵌入双引号和空字段,如:$ cat file.csv"rec1, fld1",,"rec1"",""fld3.1 "", fld3.2","rec1 fld4""rec2, fld1.1 fld1.2","rec2 fld2.1""fld2.2""fld2.3","",rec2 fld4使用awk识别单独的记录和字段最有效的方法是什么:Record 1:     $1=<rec1, fld1>     $2=<>     $3=<rec1","fld3.1", fld3.2>     $4=<rec1 fld4> ---- Record 2:     $1=<rec2, fld1.1 fld1.2>     $2=<rec2 fld2.1"fld2.2"fld2.3>     $3=<>     $4=<rec2 fld4> ----因此,它可以在内部被awk脚本的其余部分用作那些记录和字段。有效的CSV将符合RFC 4180也可以由MS-Excel生成.解决办法必须容忍记录的结束仅仅是LF(\n)对于UNIX文件,而不是CRLF(\r\n)根据该标准的要求,Excel或其他Windows工具将生成。它还将容忍未引用的字段与引用字段的混合。它特别不需要容忍逃跑"s具有前面的反斜杠(即\"而不是"")如其他一些CSV格式所允许的-如果有,则添加一个gsub(/\\"/,"\"\"")前面将处理它,并试图在一个脚本中自动处理两个转义机制将使脚本不必要地脆弱和复杂。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 445 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信