파일 대신 출력을 비교하는 vimdiff


15

두 개의 명령 출력을 비교하려고합니다 (파일 없음)

vimdiff "$(tail /tmp/cachain.pem)" "$(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)"

나는 방향 전환, 파이프로 게임을 시도했지만 vim - -c뭔가가 빠져 있어야합니다. 누구든지 도와 줄 수 있습니까?

답변:


23

$(…)와 혼동 하고 <(…)있습니다. 전자를 사용하여 출력을 인수전달 합니다 vimdiff. 예를 들어, 마지막 행에 /path/to/foocontains가 있으면 bar bar bar다음 명령

echo $(tail -1 /path/to/foo)

에 해당

echo bar bar bar

대신을 사용해야 <(…)합니다. 이것을 프로세스 대체 라고 하며 출력을 의사 파일vimdiff명령에 전달합니다. 따라서 다음을 사용하십시오.

vimdiff <(tail /tmp/cachain.pem) <(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)

이것은 bash 및 zsh에서 작동하지만 tcsh에서는 프로세스 대체를 수행 할 수있는 방법없습니다 .


이것은 bash에만있다
simona

@simona zsh에서도 작동합니다. 아마도 csh와 tcsh 일 것입니다.
Sparhawk

@Sparhawk 그것은 tcsh에서 작동하지 않습니다
simona

@simona 그 정보에 감사드립니다; tcsh에 익숙하지 않습니다. tsch에서 작동하는 답변을 생각해보십시오. 건배.
Sparhawk 2018 년

@Sparhawk 분명히이 할 수있는 방법이 없습니다 tcsh파일 작성하지 않고 unix.stackexchange.com/questions/5111/...을
시모나
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.