คำถามติดแท็ก diff

diff คือคำสั่ง shell เพื่อค้นหาความแตกต่างระหว่างสองไฟล์ เป็นเรื่องปกติในระบบที่ใช้ * nix ทั้งหมด

14
ฉันจะเปรียบเทียบไฟล์ไบนารีใน Linux ได้อย่างไร
ฉันต้องการเปรียบเทียบสองไฟล์ไบนารีและรับผลลัพธ์ในรูปแบบ: <fileoffset-hex> <file1-byte-hex> <file2-byte-hex> สำหรับทุกไบต์ที่แตกต่างกัน ดังนั้นถ้าfile1.binเป็น 00 90 00 11 ในรูปแบบไบนารีและfile2.binเป็น 00 91 00 10 ฉันต้องการได้อะไร 00000001 90 91 00000003 11 10 มีวิธีทำใน Linux หรือไม่? ฉันรู้cmp -lแต่มันใช้ระบบทศนิยมสำหรับออฟเซ็ตและฐานแปดสำหรับไบต์ที่ฉันต้องการหลีกเลี่ยง
303 linux  diff  binary-files 

2
ไม่สนใจ. svn เมื่อกำลังทำ `diff -r`
diffมีตัวเลือก--recursive( -r) เพื่อทำการเปรียบเทียบระหว่างสองไดเรกทอรี (ไฟล์ที่อยู่ข้างใน) มีวิธีทำให้diffละเว้นไดเรกทอรีย่อยบางอย่าง (เช่น: .svn) หรือไม่ $ diff -r src1/ src2/
95 svn  diff  recursive  ignore 

9
ฉันจะแยกไฟล์ XML สองไฟล์ได้อย่างไร
บน Linux ฉันจะสร้างส่วนต่างระหว่างสองไฟล์ XML ได้อย่างไร เป็นการดีที่ฉันจะสามารถกำหนดค่าให้บางสิ่งที่เข้มงวดหรือคลายบางสิ่งเช่นช่องว่างหรือคำสั่งแอตทริบิวต์ ฉันมักจะสนใจว่าไฟล์นั้นมีฟังก์ชั่นเหมือนกัน แต่แตกต่างกันโดยตัวของมันเองมันน่ารำคาญที่จะใช้โดยเฉพาะอย่างยิ่งถ้าไฟล์ XML ไม่มีการแพร่กระจายจำนวนมาก ตัวอย่างเช่นสิ่งต่อไปนี้ควรเป็นจริงสำหรับฉัน: <tag att1="one" att2="two"> content </tag> <tag att2="two" att1="one"> content </tag>
75 linux  xml  diff 

1
ไดเรกทอรีต่าง ๆ ยกเว้นหนึ่งโฟลเดอร์ภายใน
ฉันคิดว่าฉันมีสองไดเรกทอรีที่มีเนื้อหาเหมือนกัน แต่ฉันต้องการตรวจสอบ นอกจากนี้ฉันต้องการแยกโฟลเดอร์ที่อยู่ในทั้งสองไดเรกทอรี ฉันจะทำมันได้อย่างไร
44 linux  bash  diff 

5
ฉันจะทำไบนารีต่างกันในไฟล์ที่มีขนาดเหมือนกันสองไฟล์ใน Linux ได้อย่างไร
ฉันมีไฟล์ที่มีขนาดเหมือนกันสองไฟล์และฉันจำเป็นต้องใช้เลขฐานสองเพื่อตรวจสอบว่าเป็นไฟล์เดียวกันหรือไม่ ขณะนี้ฉันกำลังรันdiff file1.img file2.imgแต่มันใช้เวลาสักครู่ในการประมวลผลไฟล์ 4 GB ของฉัน นี่เป็นวิธีที่มีประสิทธิภาพที่สุดในการทำสิ่งนี้หรือไม่?
37 linux  diff 

4
vimdiff: ข้ามไปยังส่วนต่างภายในของบรรทัดหรือไม่
vimdiffมีประโยชน์มากสำหรับการเปรียบเทียบไฟล์ อย่างไรก็ตามฉันมักจะใช้กับไฟล์ที่มีเส้นยาวและมีความแตกต่างกันเล็กน้อย vimdiff จะเน้นความแตกต่างภายในเส้นอย่างถูกต้อง (สีชมพูทั้งเส้น, ตัวอักษรที่แตกต่างกันสีแดง) ในกรณีนี้มันจะดีที่จะสามารถที่จะข้ามไปยังความแตกต่างต่อไปภายในสาย คุณสามารถข้ามไปที่ "ความแตกต่างต่อไป" ( ]c) แต่สิ่งนี้จะข้ามไปที่บรรทัดถัดไปด้วยความแตกต่าง มีวิธีที่จะไปที่ตัวละครที่แตกต่างกันต่อไปภายในบรรทัดปัจจุบันหรือไม่?
35 vim  comparison  diff  vimdiff 

3
รายการบรรทัดจากไฟล์เดียวใน DIFF
ฉันต้องการได้รับ (GNU) DIFF เพื่อพิมพ์เฉพาะบรรทัดที่แตกต่างในไฟล์เดียว ได้รับดังนั้น ==> diffa.txt <== line1 line2 - in a only line3 line4 changed line5 ==> diffb.txt <== line1 line3 line4 changed in b line5 line6 in b only ฉันต้องการdiff --someoption diffa.txt diffb.txtผลิต line2 - in a only line4 changed ดังต่อไปนี้ดูเหมือนว่ามันจะเป็นประโยชน์ แต่มันเป็นความลับบิต: --GTYPE-group-format=GFMT Similar, but format GTYPE …
34 linux  diff 

4
ฉันจะเปิดใช้งานเอาต์พุตสีสำหรับ OSX diff ได้อย่างไร
ฉันต้องการ diff สองไฟล์ (ไม่ใช่ไฟล์เดียวกันสองไฟล์พวกเขาถูกติดตามโดย git แต่ไม่เกี่ยวข้อง) และฉันต้องการเอาท์พุทที่มีสีสันบางอย่างฉันจะทำสิ่งนั้นได้อย่างไร $ diff file_1 file_2 1,9d0 < <script ... > < // more code < </script> $ รหัสด้านบนแสดงให้ฉันเห็นความแตกต่างระหว่างไฟล์เหล่านั้น แต่ไม่มีสีใด ๆ สำหรับ diffs ที่ยาวขึ้นซึ่งอ่านยาก อีกวิธีหนึ่งคือมีวิธีสำหรับ git (ที่ฉันมีสีออกดี) เพื่อ diff สองไฟล์ที่แตกต่างกัน (ไม่เปลี่ยนแปลงไฟล์) OSX (10.7.5)
33 macos  terminal  git  diff 

6
วิธีการพิมพ์ไฟล์ที่จะมีการเปลี่ยนแปลงโดยใช้ rsync?
มีวิธีรับ rsync เพื่อพิมพ์พา ธ แบบเต็มไปยังไฟล์ทั้งหมดที่แตกต่างกันหรือไม่โดยไม่ต้องโอนไฟล์จริง ๆ ? หรือฉันต้องการวิธีที่จะกระจายไฟล์ข้ามต้นไม้สองต้น (เหนือ SSH) ตามการเปลี่ยนแปลงของขนาดหรือเวลาที่แก้ไขครั้งล่าสุดเท่านั้น
32 linux  bash  rsync  diff 

3
วิธีกระจายไฟล์ขนาดใหญ่บน Linux
ฉันได้รับdiff: memory exhaustedข้อผิดพลาดเมื่อพยายามกระจายไฟล์ 27 GB สองไฟล์ซึ่งส่วนใหญ่คล้ายกันในกล่อง Linux พร้อม CentOS 5 และ 4 GB of RAM นี่เป็นปัญหาที่ทราบกันแล้วดูเหมือนว่า ฉันคาดหวังว่าจะมีทางเลือกอื่นสำหรับยูทิลิตี้ที่จำเป็น แต่ฉันหาไม่เจอ ฉันคิดว่าวิธีแก้ปัญหาจะต้องใช้ไฟล์ชั่วคราวมากกว่าหน่วยความจำเพื่อเก็บข้อมูลที่ต้องการ ฉันพยายามใช้rdiffและxdeltaแต่ก็เป็นการดีกว่าสำหรับการแสดงการเปลี่ยนแปลงระหว่างสองไฟล์เช่นแพทช์และไม่ได้มีประโยชน์สำหรับการตรวจสอบความแตกต่างระหว่างสองไฟล์ พยายามVBinDiffแต่มันเป็นเครื่องมือภาพที่ดีกว่าสำหรับการเปรียบเทียบไฟล์ไบนารี ฉันต้องการสิ่งที่ท่อสามารถที่แตกต่างกันเพื่อ STDOUT diffเหมือนปกติ มียูทิลิตีอื่น ๆ มากมายเช่นvimdiffใช้งานได้กับไฟล์ขนาดเล็ก ฉันได้อ่านเกี่ยวกับ Solaris แล้วbdiffแต่ฉันไม่สามารถหาพอร์ตสำหรับ Linux ได้ มีข้อคิดเห็นใดบ้างนอกเหนือจากการแยกไฟล์ออกเป็นชิ้นเล็ก ๆ ฉันมีไฟล์เหล่านี้ 40 ไฟล์ดังนั้นพยายามหลีกเลี่ยงการทำลายมัน
31 linux  diff 

2
วิธีกระจายชื่อไฟล์ในสองไดเรกทอรี (โดยไม่ต้องเขียนไปยังไฟล์ระดับกลาง)
ฉันกำลังพยายามทำบางสิ่งตามแนวของ: diff `ls -1a ./dir1` `ls -1a ./dir2` แต่นั่นไม่ได้สำหรับเหตุผลที่ชัดเจน มีวิธีที่ดีกว่าในการบรรลุเป้าหมายนี้ (ใน 1 บรรทัด) มากกว่านี้หรือไม่? ls -1a ./dir1 > lsdir1 ls -1a ./dir2 > lsdir2 diff lsdir1 lsdir2 ขอบคุณ
31 diff  filenames  ls 

4
ฉันจะทำให้ 'diff -X' ละเว้นเส้นทางที่ระบุและไม่ใช่ชื่อไฟล์ได้อย่างไร
การทำ: diff -r -X <ignore-list> <src-dir> <dest-dir> ดูเหมือนจะไม่ให้diffละเว้นรายการในถ้าพวกเขาอยู่ในรูปแบบ<ignore-list><dir>/<file> รายการของแบบฟอร์ม<file> ทำอย่างไรก็ตามได้รับการพิจารณา นี่เป็นปัญหาเนื่องจากฉันอาจมีชื่อไฟล์หลายไฟล์<file>ในไดเรกทอรีย่อยที่แตกต่างกันซึ่งบางไฟล์ไม่ต้องการถูกเพิกเฉย ดูเหมือนจะไม่มีข้อมูลมากนักเกี่ยวกับไวยากรณ์รูปแบบใน manpage ของdiffทั้งสอง จากสิ่งที่ฉันสามารถบอกได้มันเป็นเพียงชื่อฐานของไฟล์ที่พิจารณาโดย diff (ดูhttp://forums.gentoo.org/viewtopic-t-889788-start-0.htmlหากคุณสนใจ)
28 linux  diff 

2
ฉันสามารถแทนที่ diff ภายในทั้งหมดใน Total Commander ด้วยเครื่องมือที่กำหนดเองได้หรือไม่?
ตั้งแต่ฉันไม่ชอบรวมผู้บัญชาการ diff ภายในเปรียบเทียบเนื้อหาที่ใช้ในการเปรียบเทียบตามเนื้อหาและประสาน Dirs → เปรียบเทียบซ้ายและขวาผมต้องการที่จะใช้อย่างอื่นเช่น WinMerge หรือ KDiff3 เป็นไปได้ไหมที่จะเรียกใช้โปรแกรมภายนอกด้วยพา ธ ไปยังไฟล์ที่ทำเครื่องหมายไว้ในบานหน้าต่างด้านซ้ายและขวา? ที่จะแก้เปรียบเทียบตามเนื้อหา มีวิธีอื่นในการแก้ไขหรือไม่ ฉันสามารถควบคุมซิงโครไนซ์ Dirsได้หรือไม่เมื่อฉันเปรียบเทียบเนื้อหาไฟล์ที่นั่น คำแนะนำอื่น ๆ เพื่อทำให้ diffs ใน Total Commander ง่ายขึ้นด้วยโปรแกรม diff ภายนอก?


11
ฉันจะเปรียบเทียบไฟล์ขนาดใหญ่ใน Windows ได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ใช้ขั้นสูง ปิดให้บริการใน2 ปีที่ผ่านมา ฉันต้องการเปรียบเทียบสองไฟล์ใน Windows แต่ละไฟล์มีขนาดประมาณ 1Gb ฉันลองTotal CommanderและWinMergeแต่ทั้งคู่จบลงด้วยข้อผิดพลาดหน่วยความจำไม่พอ ฉันใช้ Vista Home Premium 64 บิตพร้อม RAM ขนาด 8GB ดังนั้นหน่วยความจำไม่ควรเป็นปัญหา
25 windows  diff 

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