首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用特殊字符替换字符串的sed

用特殊字符替换字符串的sed
EN

Stack Overflow用户
提问于 2013-09-30 20:52:51
回答 2查看 324关注 0票数 0

我试图从文本文件中替换特定的字符串

输入:计算机外设、Internet技术、C/C++

输出:购买通用编程

当我尝试使用折叠sed时:

代码语言:javascript
复制
refcat="Computer Peripherals"
cat1="Shopping"
echo $list | sed -e 's@$refcat@$cat1@g'

我得到以下结果:

计算机外设网络技术

我在另一条线上得到输出。有人能帮我吗??我的输入和输出值中可以包含特殊字符(除了“AC.26”或“@”)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-30 20:56:04

对于shell来展开变量,您需要双引号,我认为

代码语言:javascript
复制
echo $list | sed -e "s@$refcat@$cat1@g"

我的例子

代码语言:javascript
复制
echo Computer Peripherals Internet Technology C/C++ | sed -e "s@${refcat}@${cat1}@g"

结果

代码语言:javascript
复制
Shopping Internet Technology C/C++
票数 1
EN

Stack Overflow用户

发布于 2013-09-30 20:55:55

单引号不插入shell变量,因此更改为双引号:

代码语言:javascript
复制
echo $list | sed -e "s@$refcat@$cat1@g"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19103629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档