วิธีกระจายไดเร็กตอรี่สำหรับไฟล์ต่าง ๆ , แต่ไม่ใช่แบบทีละบรรทัด


16

ฉันต้องการดูไฟล์ซ้ำที่แตกต่างกันในสองไดเรกทอรี Diff สามารถทำสิ่งนี้ได้ แต่มันแสดงให้เห็นถึงความแตกต่างแบบบรรทัดต่อบรรทัดซึ่งฉันไม่ต้องการ มีเครื่องมือที่ทำสิ่งนี้หรือวิธีการทำสิ่งนี้กับ Diff (ฉันอ่าน man page ฉันไม่เห็นอะไรเลย)?

คำตอบ:


29

เกี่ยวกับอะไร

diff -rq DIR1 DIR2

หรือ

diff -rqb DIR1 DIR2

-r ซ้ำ

-q เป็นข้อมูลโดยย่อและจะแจ้งให้คุณทราบว่าไฟล์ต่างกันหรือไม่ (เช่นจะไม่แสดงความแตกต่างของบรรทัดต่อบรรทัด)

-b ละเว้นช่องว่าง


1
-b ละเว้นการเปลี่ยนแปลงพื้นที่สีขาว ใช้ -q หรือ --brief สำหรับตัวเลือกสั้น ๆ
Doug Harris

และฉันเพิ่งโหวตขึ้นนี้ ฉันลองตัวเลือกสั้น ๆ เป็นครั้งแรก มันเป็นผลลัพธ์ที่ดีมาก - แสดงไม่เพียงแค่ไฟล์ที่แตกต่างกัน แต่ระบุว่ามีไฟล์ใดบ้างในไดเรกทอรีหนึ่งและไม่ใช่ไฟล์อื่น
Doug Harris

ขอบคุณดั๊ก; ฉันเดาว่าตอนแรกฉันมีทางเลือกหมุน 180 องศา ;) แก้ไขทันที
ปล้น

2

คุณกำลังมองหา-qตัวเลือก:

dlamblin$ diff -r a b
diff -r a/a b/a
0a1,2
> 
> 
Only in b: b
dlamblin$ diff -qr a b
Files a/a and b/a differ
Only in b: b

1

วิธีหนึ่งในการทำเช่นนี้คือการทำ

diff dir1 dir1| grep "diff "

มันจะทำการเปรียบเทียบทีละบรรทัด แต่การเปรียบเทียบแต่ละไฟล์เริ่มต้นด้วย "diff dir1 / ไฟล์ dir2 / file" ดังนั้น grepping "diff" จะแสดงเฉพาะบรรทัดเหล่านั้น (เช่นไฟล์ที่แตกต่างกัน)


1

หากคุณเป็นผู้ใช้ emacs ให้ตรวจสอบไดเรกทอรี ediff คุณสามารถดูความแตกต่างของไฟล์จากนั้นเจาะลึกลงไปในความแตกต่างแบบทีละบรรทัดหากคุณต้องการดูสาเหตุที่แตกต่างกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.