공정교체된 이 티셔츠는 왜 첫 번째 라인과 선택된 라인을 생산하지 못하는 걸까요? [복사]

공정교체된 이 티셔츠는 왜 첫 번째 라인과 선택된 라인을 생산하지 못하는 걸까요? [복사]

내가 원하는 것은 출력(헤더)의 첫 번째 줄 ps aux과 grep 결과를 인쇄하는 것입니다.

검색한 결과 다음과 같은 결론을 얻었습니다.

ps aux | tee >(head -1 > /dev/tty) | grep mongo

grep mongo하지만 stdin이 끊어진 것을 발견했습니다 .

또한 생략하면 > /dev/tty직접 표준 출력은 어떻게 되나요 head -1? 콘솔은 왜 안되나요?

(예, 나는 명령을 사용하여 원하는 것을 얻을 수 있다는 것을 알고 있습니다 awk. 왜 내 명령이 작동하지 않는지 궁금합니다.)

답변1

이를 사용하여 awk두 가지를 동시에 일치시킬 수 있습니다.

  • 첫번째 줄.
  • "mongo"가 포함된 줄입니다.

그게 다야:

$ ps aux | awk 'NR == 1 || /mongo/ {print $0}'
  • 조건이 NR == 1첫 번째 행과 일치합니다.
  • 조건은 /mongo/"mongo"가 포함된 행과 일치합니다.
  • {print $0}는 처음 두 조건과 관련된 작업입니다. 이 경우 전체 라인을 인쇄합니다.

관련 정보