vimdiff untuk membandingkan keluaran daripada file

15

Saya mencoba membandingkan dua output perintah (tidak ada file)

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

Saya mencoba bermain dengan pengalihan, pipa, dan vim - -ctetapi saya pasti kehilangan sesuatu. Apakah ada yang bisa membantu ?

Florian Bidabe
sumber

Jawaban:

23

Anda bingung $(…)dengan <(…). Anda menggunakan mantan, yang melewati output sebagai argumen untuk vimdiff. Misalnya, jika baris terakhir /path/to/fooberisi bar bar bar, maka perintah berikut

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

setara dengan

echo bar bar bar

Sebagai gantinya, Anda perlu menggunakan <(…). Ini disebut proses substitusi , dan meneruskan output sebagai file pseudo ke vimdiffperintah. Karenanya, gunakan yang berikut ini.

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

Ini berfungsi dalam bash dan zsh, tetapi tampaknya tidak ada cara untuk melakukan proses substitusi di tcsh.

Sparhawk
sumber
ini hanya di bash,
simona
@imona Bekerja untukku di zsh juga. Mungkin juga csh dan tcsh.
Sparhawk
@Sparhawk tidak berfungsi di tcsh
simona
@simona Terima kasih atas informasi itu; Saya tidak terbiasa dengan tcsh. Anda mungkin mempertimbangkan untuk membuat jawaban yang berfungsi di tsch. Bersulang.
Sparhawk
@Sparhawk tampaknya tidak ada cara untuk ini tcshtanpa membuat file unix.stackexchange.com/questions/5111/...
simona