我只想在shell脚本中替换一些预定义字符串:
字符串是这样的:
#! /bin/bash
CONTENT="DEAR [NAME]"
我想用John替换[NAME]。 我使用下面的代码:
#! /bin/bash
CONTENT="DEAR [NAME]"
echo "$CONTENT" | sed -r 's/[[NAME]]+/John/g'
得到以下结果; 亲爱的[NAMJhon
我需要这样的结果“亲爱的Jhon”。
答案 0 :(得分:2)
你必须逃避[]
s:
$ echo $CONTENT | sed 's/\[NAME\]/John/'
DEAR John
但是对于这种情况你只能打击:
$ echo ${CONTENT/\[NAME\]/John}
DEAR John
答案 1 :(得分:1)
使用转义序列。
#! /bin/bash
CONTENT="DEAR [NAME]"
echo "$CONTENT" | sed 's/\[NAME\]/John/g'
输出为
亲爱的约翰