示例文件
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
答案 0 :(得分:1)
The escape character in Windows is ^
,这意味着sed
的参数将以s//"/;s/|/","/g;s/$/"/
的形式传递,因为^
只是在其后转义了斜杠。在该^
之前添加另一个sed 's/^^/"/;s/|/","/g;s/$/"/' file
,以便在参数中得到一个文字^
。
(错误“没有先前的正则表达式”是因为如果您向sed
的{{1}}命令传递一个空的匹配正则表达式,它将使用您在会话中使用的最后一个匹配正则表达式,但是没有不是一个人。)