Yeni dosyalar oluşturmamayı tercih ediyorum.Farkı bulmak için iki unix komutunun çıktısını nasıl karşılaştırabilirim?
cmd1 > a
cmd2 > b
cat a b b | sort | uniq -u
ancak dosyalar a ve b kullanmadan: Ben benzer bir şey başarmak istiyorum.
Yeni dosyalar oluşturmamayı tercih ediyorum.Farkı bulmak için iki unix komutunun çıktısını nasıl karşılaştırabilirim?
cmd1 > a
cmd2 > b
cat a b b | sort | uniq -u
ancak dosyalar a ve b kullanmadan: Ben benzer bir şey başarmak istiyorum.
Unix hizmeti genellikle odaklı dosya, böylece hiçbir şey oldukça istediğini yapar.
Ancak, zsh aşağıdaki yazım geçici dosyaları autocreate edebilirsiniz: Aynı zamanda geçici adlandırılmış yöneltme oluşturabilir
diff =(cmd1) =(cmd2)
(veya anonim borularını başvurmak için özel dosyaları /dev/fdn
kullanın)
diff <(cmd1) <(cmd2)
ile Bununla birlikte, birçok diff
numaralı telefonun lseek()
numaralı telefon numarasını arayarak, bu nedenle adlandırılmış yöneltmelerle çalışmaz.
(diff
yukarıdaki boru hattı daha çok benzer çıktı karşılaştırmak için genel bir daha kullanışlı komuta budur.)
fazla detay için "zshexpn" adam sayfasının "süreci ikamesi" bölümüne bakın.
'<(cmd)' sözdizimi oldukça bash gibi daha yaygın olarak kullanılan kabuklarla da desteklenen standart olanıdır. Bunu geçmişte herhangi bir problem görmeden diff ile kullandım. – Porculus
Ve tabi ki, bu sadece 'diff' kelimesiyle değil. Onu vimdiff ve diğer araçlar için de kullanıyorum. – DerMike
İlgili: [Geçici dosyalar olmaksızın iki programdan alınan çıktılar] (http://stackoverflow.com/questions/3800202/diff-output-from-two-programs-without-temporary-files), [Nasıl fark edilirim? iki komutun çıkışı?] (http://askubuntu.com/questions/229447/how-do-i-diff-the-output-of-two-commands) – kenorb