Emm*_*tin 1 linux command-line csv
我有一个包含 24 个字段的 CSV 文件。该记录类似于下面的示例。因此,某些字段的值带有“,”。如何使用分隔符?
我试图在第 9 列中找到大于 200 的值。但由于分隔符问题,我最终得到了前几列的文本。
"86680728811_10150499874478812","86680728811","fun ,celebrators.","New York City’s buildings, descend on Times Square when the iconic ball drops tomorrow...","abcnews.go.com","link","published_story","271","31","0","0","0","0","0","0","0","http://abcnews.go.com/blogs/headlines/2011/12/wishes-for-2012-to-fall-on-times-square/","https://external.xx.fbcdn.net/safe_image.php?d=AQAbTSWm1WlXInTf&w=130&h=130","2012-01-01 02:00:37"
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
您可能想要使用知道如何解析 CSV 的工具。例如,与米勒:
mlr -N --csv filter '$9 > 200' < your-file
Run Code Online (Sandbox Code Playgroud)
使用 GNU awk
,您可以设置FPAT
基于它们匹配的模式而不是分隔它们的分隔符来定义字段:
gawk -v 'FPAT=[^",]*|"([^"]|"")*"' 'substr($9,2) > 200'
Run Code Online (Sandbox Code Playgroud)
这里也处理"
转义为""
,但假设字段值不包含换行符并且第 9个字段总是嵌入在引号中。
归档时间: |
|
查看次数: |
84 次 |
最近记录: |