如何在Shell脚本中替换完全匹配的单词?

时间:2017-05-05 05:26:22

标签: shell sed sh

我只想在shell脚本中替换一些预定义字符串:

字符串是这样的:

 #! /bin/bash
 CONTENT="DEAR [NAME]"

我想用John替换[NAME]。 我使用下面的代码:

#! /bin/bash
CONTENT="DEAR [NAME]"
echo "$CONTENT" | sed -r 's/[[NAME]]+/John/g'

得到以下结果;     亲爱的[NAMJhon

我需要这样的结果“亲爱的Jhon”。

2 个答案:

答案 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'

输出为

亲爱的约翰