在windows中使用sed将分隔文件传输到csv

在windows中使用sed将分隔文件传输到csv,csv,sed,cmd,Csv,Sed,Cmd,样本文件 NFTY|First Trust India Nifty 50 Equal Weight ETF|G|N|N|100|Y|N NGHC|National General Holdings Corp - Common Stock|G|N|N|100|N|N 渴望的 NFTY,First Trust India Nifty 50 Equal Weight ETF,G,N,N,100,Y,N NGHC,National General Holdings Corp - Common Stoc

样本文件

NFTY|First Trust India Nifty 50 Equal Weight ETF|G|N|N|100|Y|N
NGHC|National General Holdings Corp - Common Stock|G|N|N|100|N|N
渴望的

NFTY,First Trust India Nifty 50 Equal Weight ETF,G,N,N,100,Y,N
NGHC,National General Holdings Corp - Common Stock,G,N,N,100,N,N
可以在bash中工作,但不能在windows中工作

sed 's/^/"/;s/|/","/g;s/$/"/' file
windows中的错误

sed: -e expression #1, char 0: no previous regular expression
,这意味着
sed
的参数被传递为
s/“/”/s/|/“,“/g;s/$/”/
,因为
^
只是转义它后面的斜杠。在该文件之前添加另一个
^
sed's/^^/“/;s/|/”,“/g;s/$/”/”文件
),以便在参数中获得文本
^


(错误“no previous regular expression”是因为如果您将一个空的匹配正则表达式传递给
sed
s
命令,它将使用您在会话中使用的最后一个匹配正则表达式,但这里没有。)

请澄清,我们在MS-DOS提示符中谈论的是运行
sed
?我猜这与shell如何解释正则表达式中的引号有关。我的特定操作系统是windows 10,sed gnu v 4.4,我不一定要在sed中这样做。我无法使用(csv)文件,因为在psql的copy命令中指定了删除器为|会破坏我的脚本(脚本中的管道被解释为系统信号),我不确定如何处理它(使用psql导入csv文件)。我们想知道您将此命令绑定到哪里-例如:git bash、windows linux子系统、cygwin、,dos提示等。。。是否
sed“s/^/\”/;s/|/\“,\”/g;s/$/\“/”
work?命令提示符cmd.exe,“未找到网络路径”sed“s/^/\”/;s/|/\“,\”/g;s/$/\“/”