SED用新字符串替换被空格包围的字符串

SED用新字符串替换被空格包围的字符串,sed,Sed,我是一个脚本初学者 我有一个包含几页文本的文件。我想改变一个词,在中间的一行,由另外两个词组成,如在这个例子中: 原始行: BUREAU DES DOCKS ET TRANSPORTS POSTE M.G. CN 修改行: BUREAU DES DOCKS ET TRANSPORTS POSTE M.G. CN NICOLAS 为此,我在这个脚本中使用了“SED”和以下语法: while read var1 var

我是一个脚本初学者

我有一个包含几页文本的文件。我想改变一个词,在中间的一行,由另外两个词组成,如在这个例子中:

原始行:

 BUREAU DES DOCKS ET TRANSPORTS         POSTE M.G.           CN 
修改行:

 BUREAU DES DOCKS ET TRANSPORTS         POSTE M.G.           CN NICOLAS
为此,我在这个脚本中使用了“SED”和以下语法:

while read var1 var2
do
sed -i -e "/POSTE M.G./ s/ $var1 / $var1 $var2 /g" /exploit/scripts/file-MOD.txt
done < liste_MOD
读取var1 var2时
做
sed-i-e“/POSTE M.G./s/$var1/$var1$var2/G”/exploit/scripts/file-MOD.txt
完成

但它不起作用。有人能帮我吗?

你的解决方案适合我。你能告诉我什么不适合你吗

bjb@rhino:~$ cat /tmp/mod
CN NICOLAS
bjb@rhino:~$ cat /tmp/sed.in
BUREAU DES DOCKS ET TRANSPORTS         POSTE M.G.           CN 

bjb@rhino:~$ while read var1 var2; do sed -i -e "/POSTE M.G./ s/ $var1 / 
$var1 $var2 /g" /tmp/sed.in; done < /tmp/mod
bjb@rhino:~$ cat /tmp/sed.in
BUREAU DES DOCKS ET TRANSPORTS         POSTE M.G.           CN NICOLAS 

bjb@rhino:~$
否则它将匹配诸如
POSTE MAGA
POSTE M9G2
等内容

此外,要匹配整个单词而不需要前后空格,可以使用\b:

s/\b$var1\b/$var1 $var2/g

你好,布伦达,当a使用这个合成斧时没有替代品。我可以在屏幕上看到替换是打开的,但是当查看文件时,它不是0s/\b$var1\b/$var1 $var2/g