2
A
回答
2
就我所知,GNU sed不支持预读和后退。为您解决问题的简单方法是用一些“独特”的字符串替换KLMabc
,更换所有abc
秒,然后用KLMabc
sed 's/KLMabc/#####/g' <input_file> | sed 's/abc/rrr/g' | sed 's/#####/KLMabc'
或
sed 's/KLMabc/#####/g' -e 's/abc/rrr/g' -e 's/#####/KLMabc' <input_file>
1
更换唯一的字符串回来,如果你能使用ssed
,你就可以使用Perl样式的lookbehind assertion:
ssed -R 's/(?<!KLM)abc/rrr/g' input.txt
举例:
$ echo "dasdasKLMabc dasabc" | ssed -R 's/(?<!KLM)abc/rrr/g'
dasdasKLMabc dasrrr
3
sed似乎不支持后视。但你可以在Perl中做到这一点很容易:
[email protected]:~$ echo -e "llalaabc\nKLMabc" | perl -pe 's/(?<!KLM)abc/rrr/'
llalarrr
KLMabc
[email protected]:~$
相关问题
- 1. 匹配词后使用SED/AWK
- 2. 使用匹配匹配整个单词
- 3. 使用正则表达式\ W匹配使用sed的非单词的问题
- 4. 如何使用OMetaJS匹配单词?
- 5. 使用RegEx匹配相似单词
- 6. 使用grep匹配确切的单词
- 7. 使用RE找到匹配的单词
- 8. 如何使用LINQ匹配单词
- 9. grep匹配一个单词,但不匹配另一个单词
- 10. 如何使用sed来匹配某个单词,然后用引号包装该单词?
- 11. 的sed:匹配文件
- 12. 使用正则表达式匹配部分单词或单词
- 13. 使用Solr匹配包含相似单词的单词吗?
- 14. 在单词中匹配单词Python
- 15. ruby正则表达式有多个单词有条件匹配
- 16. 使用sed用多行替换单词?
- 17. 使用sed匹配多个线条图案
- 18. 多个文件中的单词匹配
- 19. 使用javascript匹配表单条目?
- 20. ř匹配整个单词
- 21. PHP匹配整个单词
- 22. 准确单词匹配Solr
- 23. vim:匹配单词不以$
- 24. Ruby部分单词匹配
- 25. 匹配整个单词
- 26. 匹配条件
- 27. 删除单词用的sed
- 28. 两个文件并提取匹配的单词匹配一个
- 29. 从文件匹配单词列表并输出其余单词
- 30. 匹配非号码使用的sed
不是危险在“独一无二”的字符串使用'猜测\ N'的(除非用户添加)此字符串将永远不会出现在模式空间。 – potong 2013-03-15 12:23:04