在 sed bash 中写一个特殊字符

writing a special character in sed bash

我有问题,因为我想替换

QueryConnection::DefaultChannel=

QueryConnection::DefaultChannel=/${CHANNEL NUMBER}

例如: QueryConnection::DefaultChannel=/5

我的代码:

sed -i "s/QueryConnection::DefaultChannel=.*/QueryConnection::DefaultChannel=${NUMER_KANALU}/" "${DIR_BOTS}/bot_${COUNT_BOTS}/configTS3AudioBot.cfg"

如何使${NUMER_KANALU}前为"/"?

两个选择:

  1. 转义斜线:

    sed -i "s/QueryConnection::DefaultChannel=.*/QueryConnection::DefaultChannel=\/${NUMER_KANALU}/" "${DIR_BOTS}/bot_${COUNT_BOTS}/configTS3AudioBot.cfg"
    
  2. s 参数周围使用不同的分隔符:

    sed -i "s#QueryConnection::DefaultChannel=.*#QueryConnection::DefaultChannel=/${NUMER_KANALU}#" "${DIR_BOTS}/bot_${COUNT_BOTS}/configTS3AudioBot.cfg"