相关疑难解决方法(0)

在awk中用双引号转义分隔符

我使用awk用","解析我的数据作为分隔符,因为输入是一个csv文件.但是,数据中有","由双引号("...")转义.

filed1,filed2,field3,"field4,FOO,BAR",field5
Run Code Online (Sandbox Code Playgroud)

如何在双引号内忽略逗号","以便我可以使用awk正确解析输出?我知道我们可以在excel中做到这一点,但我们如何在awk中做到这一点?

awk delimiter separator double-quotes

27
推荐指数
2
解决办法
3万
查看次数

使用gawk解析CSV文件

你如何使用gawk解析CSV文件?简单设置FS=","是不够的,因为带有逗号的引用字段将被视为多个字段.

使用的示例FS=","不起作用:

文件内容:

one,two,"three, four",five
"six, seven",eight,"nine"
Run Code Online (Sandbox Code Playgroud)

gawk脚本:

BEGIN { FS="," }
{
  for (i=1; i<=NF; i++) printf "field #%d: %s\n", i, $(i)
  printf "---------------------------\n"
}
Run Code Online (Sandbox Code Playgroud)

输出不好:

field #1: one
field #2: two
field #3: "three
field #4:  four"
field #5: five
---------------------------
field #1: "six
field #2:  seven"
field #3: eight
field #4: "nine"
---------------------------
Run Code Online (Sandbox Code Playgroud)

期望的输出:

field #1: one
field #2: two
field #3: "three, four"
field #4: five
---------------------------
field #1: "six, seven"
field …
Run Code Online (Sandbox Code Playgroud)

csv bash awk gawk

12
推荐指数
2
解决办法
2万
查看次数

标签 统计

awk ×2

bash ×1

csv ×1

delimiter ×1

double-quotes ×1

gawk ×1

separator ×1