0

我正在尝试替换文本文件中的特定字符串

输入:计算机外设互联网技术 C/C++

输出:购物通用编程

当我尝试使用以下 sed 时:

refcat="Computer Peripherals"
cat1="Shopping"
echo $list | sed -e 's@$refcat@$cat1@g'

我得到以下结果:

电脑外设互联网技术

我在不同的行上得到输出。有人可以帮我吗?我的输入和输出值可以包含特殊字符(“|”或“@”除外)

4

2 回答 2

1

单引号不插入 shell 变量,所以改为双引号:

echo $list | sed -e "s@$refcat@$cat1@g"
于 2013-09-30T20:55:55.543 回答
1

为了让shell扩展变量,我认为你需要双引号

echo $list | sed -e "s@$refcat@$cat1@g"

我的例子

echo Computer Peripherals Internet Technology C/C++ | sed -e "s@${refcat}@${cat1}@g"

结果

Shopping Internet Technology C/C++
于 2013-09-30T20:56:04.590 回答