我正在翻譯一個GNU Makefile
到MSBuild
XML。cmd - sed命令輸入解析錯誤
我有以下sed
命令(一個更大的命令的一部分):
... | sed 's/^Q(.*)/"&"/' | ...
當我執行只是在Cygwin
sed
部分,它「作品」在這個意義上,它並不會報錯了。
不過,我已經將它轉換爲XML MSBuild
後 - 取代了XML敏感的符號與"
,&
,'
- 我得到的錯誤
sed的:不支持的命令「
我確信這不是XML轉義問題的問題;在Visual Studio生成日誌說
任務參數:命令= 「C:\ Program Files文件\ GNU ARM的Eclipse \構建工具\ 2.8-201611221915 \ BIN \ sed的」「S/^ Q /」(*)。 &「/ '(任務id:21)
sed的:不支持的命令'(任務id:21)
命令 「」 C:\ Program Files文件\ GNU ARM的Eclipse \構建工具\ 2.8-201611221915 \ BIN \ (TaskId:21)
('*)/'Q(*)/「&」/'「該命令被翻譯成最初打算的sed 's/^Q(.*)/"&"/'
但是,現在似乎有一個問題與cmd.exe
。
關於cmd.exe
,該命令的哪部分不是這樣的?
是單/雙引號嗎?和號?
我使用表from here。
不知道,因爲它似乎是你正在使用的'sed'版本,它反對它正在接收的命令。如果你確定'cmd'不能協同工作,那麼'cmd'將''''''''''''作爲特殊字符。我試着用'^'轉義每一個,所以''s/^^ Q(。* ^)/「^&」/'' - '^'通常會轉義'cmd'中的有問題的字符 - %' ''''' – Magoo
@Magoo我把''s/^ Q(。*)/「&」/''放在一個文本文件中,並把它叫做'sed -f sedCmd.txt',我得到了同樣的錯誤信息。這縮小了什麼? – Adrian
這似乎與'bash'沒有任何關係 – chepner