Как 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