如何在不更改任何其他匹配字符串的情况下替换整个单词?

时间:2014-06-05 17:07:38

标签: linux sed

我想在代码中将变量Status的所有实例更改为status

但有些行StatusCurrent_StatusCheck_Status_After_Write等字符串位于同一行。

我只想替换变量名,而不是在可能的情况下更改其他变量的定义或匹配注释字符串。

我试图使用:

grep -nwrs Status ./Status.txt  | xargs sed -i 's/i\<Status\>/status/g'

返回:     sed:没有输入文件

我尝试将其简化使用:

grep -rl Status ./Status.txt  | xargs sed -i 's/i\<Status\>/status/g'

但这不能按我的意愿行事。

我是否过于复杂?任何人都可以提供解决方案吗?

顺便说一下,我有一些失败的尝试做这个并且对于字符串替换有点偏执,有没有办法在替换发生之前请求验证而不编写脚本?

1 个答案:

答案 0 :(得分:0)

你能不能使用模式

^Status$ 

只匹配单词状态,之前或之后什么都没有?