在Windows中使用sed将定界文件管道传输到csv

时间:2018-07-17 22:13:23

标签: 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 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

1 个答案:

答案 0 :(得分:1)

The escape character in Windows is ^,这意味着sed的参数将以s//"/;s/|/","/g;s/$/"/的形式传递,因为^只是在其后转义了斜杠。在该^之前添加另一个sed 's/^^/"/;s/|/","/g;s/$/"/' file,以便在参数中得到一个文字^

(错误“没有先前的正则表达式”是因为如果您向sed的{​​{1}}命令传递一个空的匹配正则表达式,它将使用您在会话中使用的最后一个匹配正则表达式,但是没有不是一个人。)