【发布时间】:2020-01-06 01:56:27
【问题描述】:
我找到了一种方法,可以将文件 inputfile.txt 中的单词替换为 bash 中 substitutes.txt 中的匹配单词与 sed。
例如:
文件 substitutes.txt 包含要替换的单词对:Good=oksat=cat
我使用以下代码:
sed -e 's/^/s%/' -e 's/=/%/' -e 's/$/%g/' substitutes.txt |
sed -f - inputfile.txt >outputfile.txt
这个替换有点激进,用okyear 替换Goodyear 或用saturday 替换caturday,但它应该不理会这些词。
问题来了:
如何在此替换中实现单词边界 (\b),以便仅替换单词(而不是单词的一部分)?
【问题讨论】:
-
sed -e 's/^/s%\\b/' -e 's/=/\\b%/' -e 's/$/%g/' substitutes.txt