我试图使用grep来匹配列表中的特定单词。 假设列表包含联盟和与grep的区别
aa
der
bb
abc ref
如果我的理解是正确的,(我想这使用grep -E)
cat file | grep '[a-z&&[^m-r]]'
应该返回
aa and bb
(所有字母匹配从到z,除了m到r)。但我什么都没有。在这里失踪了吗?
我试图使用grep来匹配列表中的特定单词。 假设列表包含联盟和与grep的区别
aa
der
bb
abc ref
如果我的理解是正确的,(我想这使用grep -E)
cat file | grep '[a-z&&[^m-r]]'
应该返回
aa and bb
(所有字母匹配从到z,除了m到r)。但我什么都没有。在这里失踪了吗?
您可以使用负向预览。他说:
grep -P '^[a-z](?!.*[m-z])' filename
将返回
aa
bb
您的输入。
为什么这么复杂?我对这个要求的解释会提示'^ [a-ls-z] * $'。 – tripleee
你可以使用-v
开关只是反转的grep匹配:
cat myfile.txt | grep -v '[m-r]'
或者不包括管道:
grep -v '[m-r]' myfile.txt
请描述你想匹配的模式。 – Marc
除m到r以外的a-z之间的任何字母/单词。 –
正则表达式中没有交点运算符。如果存在,它可能是单个(不是双精度)'&',但操作符无论如何都不能在字符类中使用。 – tripleee