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. 如何使用LINQ匹配单词
- 2. 使用RegEx匹配相似单词
- 3. 如何使用OMetaJS匹配单词?
- 4. 如何使用sed来匹配某个单词,然后用引号包装该单词?
- 5. grep匹配一个单词,但不匹配另一个单词
- 6. 的sed:匹配文件
- 7. 使用Solr匹配包含相似单词的单词吗?
- 8. 使用sed用多行替换单词?
- 9. 使用sed匹配多个线条图案
- 10. 使用javascript匹配表单条目?
- 11. PHP匹配整个单词
- 12. 删除单词用的sed
- 13. 匹配条件
- 14. 两个文件并提取匹配的单词匹配一个
- 15. 匹配非号码使用的sed
- 16. 如何使用python匹配文本文件中的单词?
- 17. 使用Ansible替换匹配文件中的多个单词
- 18. 使用sed获取任何单词和最后一个单词
- 19. 仅匹配单个数字sed
- 20. 如何在条件匹配时仅使用sed删除第一行?
- 21. 只用LIKE匹配整个单词?
- 22. 用于匹配单词或单词的正则表达式
- 23. 匹配语句用条件
- 24. 当条件匹配时使用jquery匹配多个元素
- 25. 匹配OR条件
- 26. 使用python匹配条目
- 27. SQL LIKE - 使用括号(字符范围)匹配匹配整个单词
- 28. 匹配文件和行号的sed
- 29. 匹配单元格与列表和呈现词条
- 30. 匹配除单个单词外的任何单词
不是危险在“独一无二”的字符串使用'猜测\ N'的(除非用户添加)此字符串将永远不会出现在模式空间。 – potong 2013-03-15 12:23:04