将SED分配给变量时出现问题

时间:2018-07-06 22:41:12

标签: sed bsd

我正在BSD机器上工作,而我试图做的是将使用变量作为输入的SED命令的输出分配一个变量。经过3天的尝试,尝试了多种不同的方法,并始终以“ ./下标:$ {sed ...}:错误替换”错误结束。任何帮助将不胜感激。

TMPEX=${sed "s/\\\\\\/\\\\/g" <<$TMPEX}

TEMPEX最初包含

C:\\Windows\\System32\\wininit.exe

并且我想用单反斜杠替换双反斜杠,以便TMPEX包含:

C:\Windows\System32\wininit.exe

我想念什么?

1 个答案:

答案 0 :(得分:2)

  • 使用sed和可理解此处字符串的外壳程序:

    TMPEX="$(sed 's/\\\\/\\/g' <<< "$TMPEX")"
    
  • 或者,对于仍不理解此处字符串的shell,仍使用sed

    TMPEX="$(echo "$TMPEX" | sed 's/\\\\/\\/g')"
    
  • 甚至更好,如果shell理解模式替换:

    TMPEX="${TMPEX//\\\\/\\}"