【发布时间】:2020-10-29 10:25:27
【问题描述】:
我需要解析 awk 脚本中的字段以搜索特殊字符,如果存在则替换为“,”或“/”
awk 脚本将 CSV 转换为 DAT。定义的字段分隔符是;但有时用户会发送包含字段分隔符的评论。为了解决这个问题,我们需要解析 NUMBER $4 的 COMMENT 字段,以防该字段包含 ;用/或逗号替换
这是文件
"PAT";"TARO";"GEO";"COMMENT"
"FRT";"1256";"USA";"THIS IS A COMMENT ; AFTER COMMENT"
outcome expected
PAT TARO GEO COMMENT
FRT 1256 USA THIS IS A COMMENT / AFTER COMMENT
BEGIN {
FS = ";" ;
OFS = " " ;
print "pat taro geo comment";
}
NR==1{
next
}
{
pat= $1;
taro = $2;
geo = $3 ;
comment = $4 ;
}
if $4 contains ";" then
replace with "/"
end if;
{
print "pat,taro,geo,comment";
}
我该怎么做?
提前谢谢你
【问题讨论】:
-
能否请您在问题中发布输入和预期输出示例,以便更好地理解问题。
-
如果您的数据有 4 个字段并且注释字段是最后一个,则
for从 4 循环到 NF 并通过将$i附加到$4来重建$4并与哪个分开您想要的新分隔符。 -
这些临时格式只会让你不开心。坚持使用标准 CSV 或切换到 JSON 之类的东西。你会感谢自己的。