我正在尝试替换文本文件中的特定字符串
输入:计算机外设互联网技术 C/C++
输出:购物通用编程
当我尝试使用以下 sed 时:
refcat="Computer Peripherals"
cat1="Shopping"
echo $list | sed -e 's@$refcat@$cat1@g'
我得到以下结果:
电脑外设互联网技术
我在不同的行上得到输出。有人可以帮我吗?我的输入和输出值可以包含特殊字符(“|”或“@”除外)
我正在尝试替换文本文件中的特定字符串
输入:计算机外设互联网技术 C/C++
输出:购物通用编程
当我尝试使用以下 sed 时:
refcat="Computer Peripherals"
cat1="Shopping"
echo $list | sed -e 's@$refcat@$cat1@g'
我得到以下结果:
电脑外设互联网技术
我在不同的行上得到输出。有人可以帮我吗?我的输入和输出值可以包含特殊字符(“|”或“@”除外)
单引号不插入 shell 变量,所以改为双引号:
echo $list | sed -e "s@$refcat@$cat1@g"
为了让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++