【发布时间】:2014-04-18 09:31:58
【问题描述】:
要用sed 替换整个单词,可以这样做:
$ echo "bar embarassment" | sed "s/\bbar\b/no bar/g"
no bar embarassment
这取自another stackoverflow question。后续问题,如何更改单词的定义?
来自linuxtopia:
GNU sed、ssed、sed16、sed15 和 sedmod 使用某些符号来定义“单词字符”和非单词字符之间的边界。一个单词字符适合正则表达式“[A-Za-z0-9_]”。
如何包括例如“——”?或者在我的特殊情况下,我想重命名 R 代码库中的变量,在那里它们到处都是“。” (在变量名中经常使用它代替“_”,例如google's R styleguide),所以我想包括“。”在一个词的定义中。
编辑:
说得更清楚,说我想把current.my.date <- my.date + today改成current.my.date <- any.date + date,sed命令是什么?
例如修复这个命令
echo "current.my.date <- my.date + today" | sed "s/\bmy.date\b/any.date/g"
current.any.date <- any.date + today
因为它现在的形式也会改变current.my.date
【问题讨论】: