joh*_*ohn 430 regex string search grep
我需要这样的东西:
grep ^"unwanted_word"XXXXXXXX
Run Code Online (Sandbox Code Playgroud)
cod*_*ict 739
您也可以使用-vgrep选项执行此操作:
grep -v "unwanted_word" file | grep XXXXXXXX
Run Code Online (Sandbox Code Playgroud)
--invert-match将过滤具有grep -v "unwanted_word" file和的行,并unwanted_word仅列出带有模式的行grep XXXXXXXX.
编辑:
从你的评论看起来你想要列出没有的所有行XXXXXXXX.在这种情况下,您只需要:
grep -v 'unwanted_word' file
Run Code Online (Sandbox Code Playgroud)
JPG*_*lly 80
我将这个问题理解为"我如何匹配一个单词但排除另一个单词",其中一个解决方案是两个greps系列:第一个grep找到想要的"word1",第二个grep排除"word2":
grep "word1" | grep -v "word2"
Run Code Online (Sandbox Code Playgroud)
在我的情况下:我需要区分grep的"word"选项不会做的"plot"和"#plot"("#"不是字母数字).
希望这可以帮助.
cod*_*ict 33
如果你grep支持带有-P选项的Perl正则表达式,你可以这样做(如果是bash;如果tcsh你需要转义!):
grep -P '(?!.*unwanted_word)keyword' file
Run Code Online (Sandbox Code Playgroud)
演示:
$ cat file
foo1
foo2
foo3
foo4
bar
baz
Run Code Online (Sandbox Code Playgroud)
现在让我们列出所有foo除外foo3
$ grep -P '(?!.*foo3)foo' file
foo1
foo2
foo4
$
Run Code Online (Sandbox Code Playgroud)
fed*_*qui 30
正确的解决方案是使用grep -v "word" file它的awk等价物:
awk '!/word/' file
Run Code Online (Sandbox Code Playgroud)
但是,如果你碰巧有一个更复杂的情况,你想要XXX出现而YYY 不是出现,那么awk就派上用场而不是管道好几个grep:
awk '/XXX/ && !/YYY/' file
# ^^^^^ ^^^^^^
# I want it |
# I don't want it
Run Code Online (Sandbox Code Playgroud)
你甚至可以说一些更复杂的东西.例如:我希望这些行包含XXX或YYY,但不是ZZZ:
awk '(/XXX/ || /YYY/) && !/ZZZ/' file
Run Code Online (Sandbox Code Playgroud)
等等
gar*_*ima 10
使用grep -v反转匹配:
grep -v "unwanted word" file pattern
Run Code Online (Sandbox Code Playgroud)
grep提供'-v'或'--invert-match'选项来选择不匹配的行。
例如
grep -v 'unwanted_pattern' file_name
Run Code Online (Sandbox Code Playgroud)
这将从文件file_name中输出所有行,其中没有'unwanted_pattern'。
如果要在一个文件夹中的多个文件中搜索模式,则可以按以下方式使用递归搜索选项
grep -r 'wanted_pattern' * | grep -v 'unwanted_pattern'
Run Code Online (Sandbox Code Playgroud)
在这里,grep将尝试列出当前目录中所有文件中所有'wanted_pattern'的出现,并将其传递给第二个grep以过滤掉'unwanted_pattern'。'|' -管道将告诉Shell将左程序的标准输出(grep -r'wanted_pattern'*)连接到右程序的标准输入(grep -v'unwanted_pattern')。
| 归档时间: |
|
| 查看次数: |
688695 次 |
| 最近记录: |