【发布时间】:2020-02-18 00:18:39
【问题描述】:
我一直在做这个看起来很简单的任务,但是尽管阅读了这个人并在谷歌上搜索了类似的问题,但我还是无法完成。
我有一个包含数千个单词的文件,我需要过滤以“st”结尾的单词,同时不包含“s”或“t”的另一个重复,例如:
霜很好。
吐司不是。
我可以使用以下命令过滤具有所需结尾的单词:
grep -e '[s][t]$' .\file
我不能做的是过滤包含“s”或“t”重复的单词。
我试过了:
grep -E 's{0}'
或反向搜索
egrep -v '(s)\1{0}' .\file
*有了这个,我只能得到根本不包含S的单词。
和
egrep -v '(s)\1{1}' .\file
* 这个没有任何作用,因为我得到的单词都是重复 's' 字符。
任何人都知道我如何将grep -e '[s][t]$' .\file 命令通过管道传递到另一个正则表达式中,该表达式将过滤掉包含“t”或“s”重复的单词?
谢谢。
【问题讨论】:
-
grep '^[^st]*st$' file?这将匹配没有s和t但末尾有st的行。 -
虽然这个命令可以解决问题,但它不只是过滤掉以字符 's' 或 't' 开头而以 'st' 结尾的单词吗?我需要过滤掉中间可能包含重复“s”或“t”的单词,或者简单地说,单词中的重复。
-
'^[^st]*st$'将匹配像abcst这样的行,并且不会返回像asbcd或atast这样的行