sed-不同线条上的图案之间的替换

sed-不同线条上的图案之间的替换,sed,pattern-matching,Sed,Pattern Matching,我有一个从电子表格中导出的csv文件,在最后一列中,有时有一个名称列表。文件如下所示: ag,bd,cj,dy,"ss" aa,bs,cs,fg,"name1 name2 name3 " ff,ce,sd,de, ag,bd,jj,ds,"ds" fs,ee,sd,ee,"name4 name5 " 等等 我想删除引号之间最后一列中的换行符,以便输出为: ag,bd,cj,dy,ss aa,bs,cs,fg,"name1 name2 name3" ff,ce,sd,de, ag,bd,jj,d

我有一个从电子表格中导出的csv文件,在最后一列中,有时有一个名称列表。文件如下所示:

ag,bd,cj,dy,"ss"
aa,bs,cs,fg,"name1
name2
name3
"
ff,ce,sd,de,
ag,bd,jj,ds,"ds"
fs,ee,sd,ee,"name4
name5
"
等等

我想删除引号之间最后一列中的换行符,以便输出为:

ag,bd,cj,dy,ss
aa,bs,cs,fg,"name1 name2 name3"
ff,ce,sd,de,
ag,bd,jj,ds,"ds"
fs,ee,sd,ee,"name4 name5"

谢谢

awk
可能是您的一种解决方案:

awk '/\"/ {s=!s} {printf "%s"(s?FS:RS),$0}'
ag,bd,cj,dy,ss
aa,bs,cs,fg,"name1 name2 name3 "
ff,ce,sd,de,df

新解决方案

awk -F\" 'NF==3; NF==2 {s++} s==1 {printf "%s ",$0} s==2 {print;s=0}' | awk '{sub(/ "/,"\"")}1' file
ag,bd,cj,dy,"ss"
aa,bs,cs,fg,"name1 name2 name3"
ag,bd,jj,ds,"ds"
fs,ee,sd,ee,"name4 name5"

谢谢Jotne,这确实有效,但是我没有正确键入示例。问题是最后一列,如果有数据,则在引号中,如果没有数据,则为空。然后这个例子应该像上面编辑的问题(添加引号和几行)中的例子一样,添加了一个新的解决方案。不是最好的。。(不喜欢两个
awk
应该是一个)