如何为管道grep |


14

如何为包含管道字符|或character的行grep >

files content:
|this is test
where is >
this is none

现在我需要使用grep命令是

grep -iE "<some expression>" file_name

输出:

|this is test
where is >

Answers:


10

使用标准grep语法:

grep '[>|]'

要么

grep -e '>' -e '|'

要么

grep '>
|'

要么

grep -E '>|\|'

6

如果您使用的是GNU grep,则可以使用运算符(|)进行此操作,该运算符应转义(以反斜杠开头\)。因此,要查找包含管道或大于号的行,请在字面上包含or运算符:

grep '|\|>' infile

输出:

|this is test
where is >

4
\|BRE虽然它与GNU一起使用,但它不是标准运算符,而GNU 在大多数围绕Linux内核构建的操作系统中grep都可以grep找到。
2013年

@StephaneChazelas:感谢您指出这一点,我没有意识到。我纠正了文字。
2013年

1
是的,交替运营商ERES的唯一真正此外在BREs里面,剩下的(+?)是句法糖\{1,\}\{0,1\}。(另一方面,ERE \(.\)\1
放宽

1

使用方括号表达式匹配任意一个所需字符:

grep "[|>]" infile

输出:

|this is test
where is >

3
不需要任何一个-i-E这里。
2013年

是的,承认。
zagrimsan

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.