Как grep для "<|>"? (знак "больше" или "меньше")

Как я могу выполнить поиск строк, которые содержат в себе знак "больше" или "меньше"?

Следующая команда grep ничего не возвращает:

grep "<\ |>" sdiff.out

Grepping, однако, только для одного из признаков одновременно возвращает данные из файла. Файл содержит выходные данные команды sdiff.

Цель всего этого - увидеть только реальные строки, которые отличаются между двумя файлами.

Спасибо за любые советы.

2 ответа

Решение

Использование -P или же -E опция в grep с >< символы внутри класса персонажа,

grep -P '[><]' file

ИЛИ ЖЕ

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 <

Выражение 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
Другие вопросы по тегам