示例“null.csv”文件包含
71131940,2015-05-01,"珠宝,项目",P,,W
我有一个 .csv 文件,我想在其中处理逗号 (,) 和空值 (,,) 以便当我使用 (,) 拆分文件的每一行时,它会忽略双引号内的逗号并且不提供输出像下面给出的这样。
71131940,2015-05-01,JeWELLERY,ITEM,P,,W
我通过使用 sed 命令将其替换为 (,0,) 来处理空值,即 (,,)
sed -i -e "s/,,/,0,/g" null.csv
并得到了类似的输出
71131940,2015-05-01,JEWELLERY,ITEM,P,0,W
Run Code Online (Sandbox Code Playgroud)
但问题是,在这里我不想将 "JEWELLERY,ITEM" 拆分为 JEWELLERY,ITEM 。
任何形式的帮助将不胜感激。
我确信这已经被问过并回答了一百万次,但在任何情况下,输入格式都像你显示的那样简单(例如,没有引号或引号内的换行符):
$ awk -v FPAT='[^,]*|"[^"]*"' '{for (i=1;i<=NF;i++) print i, $i}' file
1 71131940
2 2015-05-01
3 "JEWELLERY,ITEM"
4 P
5
6 W
Run Code Online (Sandbox Code Playgroud)
以上使用 GNU awk FPAT(参见https://www.gnu.org/software/gawk/manual/gawk.html#Splitting-By-Content)。
| 归档时间: |
|
| 查看次数: |
2563 次 |
| 最近记录: |