명령이 있는데 다른 명령의 결과(복수형, 여러 줄)를 기준으로 해당 출력을 필터링하고 싶습니다. 지금까지 첫 번째 명령의 결과를 파일로 보내고 다음을 사용하여 두 번째 명령을 필터링했습니다 grep -f
.
command1 > /tmp/output
command2 | grep -f /tmp/output
rm /tmp/output
임시 파일 없이 이것을 단일 명령에 넣고 싶습니다.
답변1
쉘이 "프로세스 대체"를 제공하는 경우 다음을 시도하십시오.
command2 | grep -f <(command1)
그렇지 않은 경우 명령 대체를 사용하여 명령줄에 정규식 목록을 전달할 수도 있습니다.
command2 | grep -e "$(command1)"
command1
이는 정규식 목록의 최대 크기에 대한 하한을 설정하고 출력에 NUL 문자가 포함된 경우 작동하지 않음을 의미합니다( grep
어차피 많은 구현에서는 이를 차단합니다).-f