Я хотел бы найти строки, которые содержат «загружено», но не содержат «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