我正在BSD机器上工作,而我试图做的是将使用变量作为输入的SED命令的输出分配一个变量。经过3天的尝试,尝试了多种不同的方法,并始终以“ ./下标:$ {sed ...}:错误替换”错误结束。任何帮助将不胜感激。
TMPEX=${sed "s/\\\\\\/\\\\/g" <<$TMPEX}
TEMPEX最初包含
C:\\Windows\\System32\\wininit.exe
并且我想用单反斜杠替换双反斜杠,以便TMPEX包含:
C:\Windows\System32\wininit.exe
我想念什么?
答案 0 :(得分:2)
使用sed
和可理解此处字符串的外壳程序:
TMPEX="$(sed 's/\\\\/\\/g' <<< "$TMPEX")"
或者,对于仍不理解此处字符串的shell,仍使用sed
:
TMPEX="$(echo "$TMPEX" | sed 's/\\\\/\\/g')"
甚至更好,如果shell理解模式替换:
TMPEX="${TMPEX//\\\\/\\}"