vimdiff เพื่อเปรียบเทียบผลลัพธ์แทนไฟล์


15

ฉันกำลังพยายามเปรียบเทียบเอาต์พุตคำสั่งสองรายการ (ไม่มีไฟล์)

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

ฉันพยายามเล่นด้วยการเปลี่ยนเส้นทางไปป์vim - -cแต่ฉันต้องหายไปบางอย่าง ใครช่วยได้บ้าง

คำตอบ:


23

คุณมีความสับสนกับ$(…) <(…)ที่คุณใช้ในอดีตที่ผ่านออกเป็นข้อโต้แย้งvimdiffที่จะ ตัวอย่างเช่นหากบรรทัดสุดท้ายของ/path/to/fooมี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


นี่เป็นเพียงการทุบตีเท่านั้น
simona

@simona ทำงานให้ฉันด้วย zsh ด้วย อาจ csh และ tcsh เช่นกัน
Sparhawk

@Sparhawk มันไม่ทำงานใน tcsh
simona

@simona ขอบคุณสำหรับข้อมูลนั้น ฉันไม่คุ้นเคยกับ tcsh คุณอาจลองพิจารณาคำตอบที่ใช้ได้ใน tsch ไชโย
Sparhawk

@Sparhawk เห็นได้ชัดว่าไม่มีวิธีการนี้ในtcshโดยไม่ต้องสร้างไฟล์unix.stackexchange.com/questions/5111/…
simona
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.