동일한 파일에서 두 개의 grep 명령을 실행하는 방법은 무엇입니까? [복사]

동일한 파일에서 두 개의 grep 명령을 실행하는 방법은 무엇입니까? [복사]

파일이 있습니다. 슬래시로 시작하지 않고 www.슬래시를 포함하지 않는 줄을 선택하고 싶습니다. 결과를 출력하고 싶습니다.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

답변1

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

답변2

파이프 사용에 대해 걱정하지 마십시오. Alexander의 대답은 가장 훌륭하고 순수하지만, 가장 좋은 공식을 먼저 찾고 있다면 사용할 몇 가지 단계가 있습니다.

  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파이프를 사용하는 것이 매우 유용합니다.sedcut

관련 정보