Назад | Перейти на главную страницу

GREP показывает строки, которые содержат это, но не то

Я хотел бы найти строки, которые содержат «загружено», но не содержат «09»

Есть ли способ сделать это с помощью grep?

(CentOS 5.6, если это важно).

Для этого я обычно использую greps.

grep uploaded $file | grep -v 09

Это не использует grep - но в любое время у меня есть потребность, которая требует чего-то большего, чем просто grep, Обращаюсь к своему любимому, sed. Конечно, в любое время я должен цеплять grep команды вместе ...

Используйте эту команду для этого:

sed -n '/09/d; /uploaded/p' file

Всего одна команда (а не две).

Вы можете использовать параметр -v для grep, чтобы инвертировать совпадение, чтобы

grep uploaded file | grep -v 09

буду делать то, что ты хочешь. Это находит строки, которые содержат загруженные данные, которые передаются в команду grep, чтобы игнорировать строки с 09 в них.

Попробуйте просто:

( grep -v 09 | grep uploaded ) < file

Пример:

$ cat file
1 uploaded 09
2 09
3 uploaded
4 text
$ ( grep -v 09 | grep uploaded ) < file
3 uploaded