명령 출력을 텍스트 파일과 비교하는 방법은 무엇입니까?

명령 출력을 텍스트 파일과 비교하는 방법은 무엇입니까?

프로그래밍 면접 질문을 공부하고 있어서 FizzBuzz를 코딩해봤습니다. 프로그램의 출력을 .txt 파일의 알려진 양호한 출력과 비교하려고 합니다.

출력이 파일과 한 줄씩 node fizzbuzz.js같은지 또는 심지어 같은지 확인하는 방법은 무엇입니까 ?expected-output.txtdiff

중복 질문에서 제안한대로 이것을 시도했습니다.

diff -u expected-output.txt <(node fizzbuzz.js)

하지만 diff아무것도 출력되지 않으며 내가 할 때까지 종료되지 않는 것 같습니다 ^C. 프로그램 자체도 잘 실행되지만 diff -u expected-output.txt <(cat test.txt)어떤 이유로든 제대로 실행되지 않는 것 같습니다.node

답변1

Bash/ksh/Zsh에서:

diff -u file.txt <(some command)

<(some command)구조는프로세스 교체, 이는 출력을 생성합니다.일부 명령파일에서 사용 가능한 것과 마찬가지로 diff읽을 수 있습니다. (명령어에서 파이프를 설정하고 명명된 파이프의 이름으로 확장합니다.)/dev/fd/N

마찬가지로 >(some command)쓰기를 리디렉션하는 데 사용할 수 있습니다 .도착하다주문하다.

관련 정보