如何为"< |>" ? (大于或小于标志)

时间:2014-06-12 09:06:54

标签: regex grep diff sdiff

我怎样才能找到包含大于号或小于号的行?

以下grep命令不返回任何内容:

grep“< \ |>” sdiff.out

然而,对于一次只有一个符号,请尝试从文件中返回数据。该文件包含sdiff命令的输出。

所有这一切的目的是仅查看两个文件之间不同的实际行。

感谢您的任何提示。

2 个答案:

答案 0 :(得分:3)

在grep中使用-P-E选项,并在字符类中使用><符号,

grep -P '[><]' file

OR

grep -E '[><]' file

示例:

$ cat file
chr -   xyz ordered_A01 5480    6144>
chr -   xyz ordered_A01 5480    58001
rm -rf ~/Desktop/-r <

$ grep -P '[><]' file
chr -   xyz ordered_A01 5480    6144>
rm -rf ~/Desktop/-r <

$ grep -E '[><]' file
chr -   xyz ordered_A01 5480    6144>
rm -rf ~/Desktop/-r <

答案 1 :(得分:0)

表达式grep "<\|>" sdiff.out应该有效。无论如何,您可以使用-E来定义由|分隔的不同模式,从而获得相同的行为:

grep -E '<|>' file

测试

$ cat a
hello < i am
here > and this
is a test
blabla <> iea

$ grep -E '<|>' a
hello < i am
here > and this
blabla <> iea