Bash를 사용하여 다음과 같이 /dev/urandom에서 문자열을 grep하려고 합니다.
tr -cd '[:lower:]' < /dev/urandom | grep -o 'test'
또한 시도했습니다:
tr -cd '[:lower:]' < /dev/urandom | grep -o 'test' | head -1
출력이 파일로 리디렉션되더라도 파일에 아무 것도 기록되지 않은 것처럼 grep
대기가 항상 수행되는 것 같습니다 .tr
> /tmp/testfile
head
그러나 이전 에 구문 분석하면 grep
작동합니다 .
tr -cd '[:lower:]' < /dev/urandom | head -c 10000 | grep -o 'test'
stdin이 계속 실행되는 동안 작동하게 하는 방법이 있습니까? 그렇지 않다면 grep
입력이 아직 완료되지 않은 상태에서 출력을 제공하지 않는 동작은 왜 발생합니까 ?