Sed 如果单词的一部分匹配,请替换
我的文本如下所示: 猫Sed 如果单词的一部分匹配,请替换,sed,Sed,我的文本如下所示: 猫 捕获 猫鼠 猫 我想用“狗”代替“猫”。 当我这样做的时候 sed“s/cat/dog/” 我的结果是: 狗 捕获 猫鼠 猫 如果单词中只有一部分匹配,如何替换为sed?有一个错误: 您缺少g修饰符 sed 's/cat/dog/g' g 看 如果您只想在单词部分匹配的情况下用“猫换狗”: $ perl -pe 's/cat(?=.)/dog/' file.txt cat dogch dog_mouse dogty 我用积极的态度环顾四周,明白吗 如果您真的想要
捕获
猫鼠
猫 我想用“狗”代替“猫”。
当我这样做的时候 sed“s/cat/dog/” 我的结果是: 狗
捕获
猫鼠
猫 如果单词中只有一部分匹配,如何替换为sed?有一个错误: 您缺少
g
修饰符
sed 's/cat/dog/g'
g
看
$ perl -pe 's/cat(?=.)/dog/' file.txt
cat
dogch
dog_mouse
dogty
我用积极的态度环顾四周,明白吗
如果您真的想要sed:
sed '/^cat$/!s/cat/dog/' file.txt
仅当猫是字符串的一部分时才替换猫
bash-3.00$ sed 's/cat\([^$]\)/dog\1/' t
cat
dogch
dog_mouse
dogty
要替换所有出现的cat
:
bash-3.00$ sed 's/cat/dog/' t
dog
dogch
dog_mouse
dogty
此问题的awk解决方案
你确定吗
sed's/cat/dog/“
应在cat\u鼠标
行中进行替换。您是否正确地表示了输入数据。(例如,它实际上是在一行上,而不是在不同的行上?)最好提供您期望的输出。这是无关的,除非提问者错误地陈述了输入数据。
bash-3.00$ sed 's/cat\([^$]\)/dog\1/' t
cat
dogch
dog_mouse
dogty
bash-3.00$ sed 's/cat/dog/' t
dog
dogch
dog_mouse
dogty