Unix命令在搜索模式行中替换字符串

时间:2017-04-24 07:24:41

标签: unix

有一个文件包含以下数据:

  堆栈流是使用日常堆栈有其自身的优势。   有很多网站,但它是最好的   stackover flow真的很棒,有很多好处。

我想将mongo替换为 - > stack当任何一行有stackexchange时。{/ p>

输出应该是这样的:

  堆栈流是使用每天stackexchange有自己的优势。   有很多网站,但它是最好的   stackover flow真的很棒,堆栈交换的好处。

我试过用 stackover

但它也正在取代cat filename|grep 'stackover'|awk '{gsub("stack","stackexchange",$0);print}'。我不想纠正我正在搜索的单词。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

简单 sed 方法:

假设我们的内容为testfile

stackover flow is using everyday stack has its own advantages. There are many websites but it is the best stackover flow is really awesome, stack of benefits.

命令:

sed 's/\<stack\>/stackexchange/g' file

输出:

stackover flow is using everyday stackexchange has its own advantages. There are many websites but it is the best stackover flow is really awesome, stackexchange of benefits.

\<\> - 代表“字”边界