Как выполнить две команды grep для одного файла?

У меня есть файл. Я хочу выбрать строки, которые не начинаются с www. и не содержит косых черт. Я хочу вывести результат в result.txt

Для достижения первого требования:

grep -v '^www\.' myfile.txt > result.txt grep -v '^www\.' myfile.txt > result.txt .

Чтобы добиться второго, я возьму result.txt и выполню:

 grep -v '/' result.txt > result2.txt 

Есть ли лучший способ сократить время выполнения нескольких команд над файлом и сохранить результат в одном выходном файле: result.txt

Я в курсе | выполнить несколько команд, где вывод команды слева от | ввод команды справа от | , Что я не знаю, так это то, что в случае с grep или любой другой командой я должен использовать имя файла в команде справа от | , Другими словами, должно ли это быть:

 grep -v '^www\.' myfile.txt | grep -v '/' > result.txt 

ИЛИ ЖЕ

 grep -v '^www\.' myfile.txt | grep -v '/' mfile.txt > result.txt 

grep -v -e '^www\.' -e '/' myfile.txt > result.txt

Не бойтесь использовать трубы. Ответ Александра самый лучший и мрачный, но если я сначала найду лучшую формулу, я сделаю несколько шагов:

  1. заголовочный head file |grep 'first-condition' |grep 'next-conditon' :: дает вам обзор
  2. cat file |grep 'first-condition' |grep 'next-conditon' |wc -l :: дает количество
  3. grep --color 'complex-condition' :: выделяет реальный выбор

На последнем шаге вы можете создать очень сложное регулярное выражение, например:

 egrep -v '(^www\.)|(/)' myfile.txt > result.txt 

Иногда необходимо использовать другие команды анализа строк awk , sed , cut и т. Д. Использование канала очень полезно.