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

diff - เครื่องมือบรรทัดคำสั่งเพื่อแสดงความแตกต่างระหว่างสองไฟล์หรือแต่ละไฟล์ที่เกี่ยวข้องในสองไดเรกทอรี

1
วิธีที่แนะนำในการคัดลอกการเปลี่ยนแปลงด้วย vimdiff คืออะไร
เมื่อเปรียบเทียบไฟล์และอัปเดตที่เก็บซอร์สโค้ดฉันชอบใช้ vimdiff หากต้องการคัดลอกการเปลี่ยนแปลงที่ทำจากไฟล์หนึ่งไปยังอีกไฟล์หนึ่งฉันมักจะใช้ลำดับคีย์ดังนี้: - Shift + V (select line) k or j; { or }; Up or down arrow keys (select more lines) y (copy selected lines) Ctrl + w, left/right arrow (move to other pane) p (paste lines) เป็นกลุ่มของแป้นพิมพ์ลัดควรมีวิธีที่ง่ายกว่าในการทำงานเดียวกันนี้ มีไหม คุณใช้อะไรเพื่ออัปเดตการเปลี่ยนแปลงซอร์สโค้ดด้วยตนเอง
117 vim  diff 

12
diff ภายในหนึ่งบรรทัด
ฉันมี sql dumps ที่ฉันกำลังดูความแตกต่างระหว่าง diffเห็นได้ชัดว่าสามารถแสดงความแตกต่างระหว่างสองบรรทัดได้ แต่ฉันผลักดันตัวเองให้พยายามค้นหาว่าค่าใดในรายการค่าที่คั่นด้วยเครื่องหมายจุลภาคอันที่จริงแล้วคือค่าที่ทำให้เส้นแตกต่างกัน เครื่องมือใดที่ฉันสามารถใช้เพื่อชี้ให้เห็นความแตกต่างของอักขระที่แน่นอนระหว่างสองบรรทัดในไฟล์บางไฟล์
113 command-line  diff 

5
ความเข้าใจในการส่งออกต่าง
ฉันมี file1.txt this is the original text line2 line3 line4 happy hacking ! และ file2.txt this is the original text line2 line4 happy hacking ! GNU is not UNIX ถ้าฉัน: diff file1.txt file2.txtฉันได้รับ: 3d2 < line3 5a5 > GNU is not UNIX โดยทั่วไปแล้วเอาต์พุตจะตีความอย่างไร ฉันคิดว่านั่น<หมายถึงการลบออก แต่สิ่งที่ทำ3d2หรือ5a5หมายความว่าอย่างไร ถ้าฉันทำ: $ diff -u file1.txt …
87 linux  files  diff 

4
ไปป์ที่แตกต่างไม่ได้หรือ
ฉันต้องการที่จะฉลาดและเปรียบเทียบไฟล์ระยะไกลกับไฟล์ในเครื่องโดยไม่ต้องทำการดาวน์โหลดด้วยตนเองก่อน ฉันสามารถรับเนื้อหาของไฟล์ระยะไกลได้ ssh user@remote-host "cat path/file.name" อย่างไรก็ตามท่อที่ไป diff ssh user@remote-host "cat path/file.name" | diff path/file.name ให้ฉันนี้: diff: missing operand after `path/file.nae' diff: Try `diff --help' for more information. ฉันได้ตั้งค่าคีย์ ssh แล้วดังนั้นจึงไม่ได้แจ้งรหัสผ่านให้ฉัน วิธีแก้ปัญหาสำหรับสิ่งนี้คืออะไร?

3
การเปรียบเทียบสองไฟล์ใน Vim
เป็นไปได้หรือไม่ที่จะดูไฟล์สองไฟล์เทียบกันใน Vim? ถ้าเป็นเช่นนั้นฉันจะตั้งค่าตัวแก้ไขให้ทำเช่นนี้ได้อย่างไรและมีวิธีการdiffระหว่างสองไฟล์ภายใน Vim หรือไม่? ฉันตระหนักถึง:nextและ:prevคำสั่ง แต่นี่ไม่ใช่สิ่งที่ฉันตามมา มันจะเป็นการดีที่ได้ดูทั้งสองไฟล์ควบคู่
63 vim  diff 

8
การแปลงเอาต์พุตสีเป็น html
มีเครื่องมือที่ให้ผลลัพธ์เป็นสี: dwdiff -c File1 File2 # word level diff grep --color=always # we all know this guy ... คำถามคือวิธีการแปลงเอาท์พุทสีของโปรแกรมโดยพลการเป็นไฟล์ html สี? รูปแบบเอาต์พุตอื่น ๆ อาจเหมาะสมเช่นกัน (LaTeX น่าจะยอดเยี่ยม) ฉันคิดว่า html นั้นเป็นจุดเริ่มต้นที่ดีเพราะมันง่ายที่จะแปลงเป็นรูปแบบอื่น (สำหรับอยากรู้วิธีเก็บรหัสสีของเทอร์มินัลโปรดทำตามคำตอบ: https://unix.stackexchange.com/a/10832/9689 ... | unbuffer command_with_colours arg1 arg2 | ...เครื่องมือunbufferเป็นส่วนหนึ่งของความคาดหวัง )

5
วิธีกระจายไฟล์โดยไม่คำนึงถึงความคิดเห็น (บรรทัดที่ขึ้นต้นด้วย #)
ฉันมีไฟล์กำหนดค่าสองไฟล์ต้นฉบับจากผู้จัดการแพ็กเกจและไฟล์ที่กำหนดเองที่แก้ไขด้วยตัวเอง ฉันได้เพิ่มความคิดเห็นเพื่ออธิบายพฤติกรรม ฉันจะรันdiffไฟล์กำหนดค่าโดยข้ามความคิดเห็นได้อย่างไร บรรทัดความคิดเห็นถูกกำหนดโดย: ช่องว่างนำหน้าตัวเลือก (แท็บและช่องว่าง) เครื่องหมายแฮช ( #) ตัวละครอื่น ๆ (ที่ง่ายที่สุด) #.*การแสดงออกปกติข้ามความต้องการแรกจะเป็น ฉันลองตัวเลือก--ignore-matching-lines=RE( -I RE) ของ GNU diff 3.0 แต่ฉันไม่สามารถทำงานกับ RE นั้นได้ ฉันยังพยายาม.*#.*และ.*\#.*ไม่มีโชค การวางบรรทัด ( Port 631) ตามตัวอักษรอย่างแท้จริงREไม่ตรงกับสิ่งใดเลยและไม่ช่วยให้วาง RE ระหว่างเครื่องหมายทับ ตามที่แนะนำในregex แล้วรสชาติของเครื่องมือ“ diff” นั้นขาดไปหรือไม่? ฉันพยายามgrep -G: grep -G '#.*' file นี้ดูเหมือนว่าจะตรงกับความเห็น diff -I '#.*' file1 file2แต่มันไม่ทำงานสำหรับ ดังนั้นควรใช้ตัวเลือกนี้อย่างไร ฉันจะdiffข้ามบางบรรทัดได้อย่างไร (ในกรณีของฉันความคิดเห็น) …

1
ทำให้ diff ใช้ความกว้างเทอร์มินัลเต็มในโหมดเคียงข้างกัน
แอพพลิเคชั่นส่วนใหญ่ฉลาดเกี่ยวกับการใช้ความกว้างเต็มของเทอร์มินัลที่มีให้ เปลือกของฉันทำ, หน้าจอ, เป็นกลุ่ม, ฯลฯ อย่างไรก็ตามdiffในโหมดแบบเคียงข้างกัน ( -y) ไม่ได้ สิ่งนี้ทำให้ฉันโกรธ ใช้ความกว้างอักขระ 126 ตัวซึ่งไม่ได้แม้แต่ครึ่งหนึ่งของเทอร์มินัลความกว้างบล็อกของฉัน 270 -Wมองผ่านหน้าคนไม่ได้เปิดเผยอะไรโดยเฉพาะอย่างยิ่งเกี่ยวกับการปรับโดยอัตโนมัติความกว้างเพียงด้วยตนเองระบุผ่านทาง อาจมี "คุณสมบัติที่ซ่อนอยู่" ของdiffเพื่อให้ขยายโดยอัตโนมัติเต็มความกว้างของ terminal? หรือ; เส้นทางที่ง่ายที่สุดในการแทรก-W <terminalsize>คำสั่ง diff โดยอัตโนมัติเมื่อใดก็ตามที่ฉันเรียกใช้คืออะไร ฉันอยู่ภายใต้การสันนิษฐานว่าการผนวก -W กับทุกสิ่งไม่สามารถทำร้ายอะไรได้โดยอัตโนมัติเพราะมันจะหมายถึง "ใช้คอลัมน์ $ x" เท่านั้นซึ่งเป็นสิ่งที่ฉันต้องการเสมอไม่ว่าฉันจะอยู่ในโหมดแบบเคียงข้างกัน หรืออย่างอื่น
40 terminal  diff 

4
มีรูปแบบ diff แบบเคียงข้างกันแบบย่อหรือไม่
ฉันมีไฟล์บันทึกสองไฟล์ที่มีหลายพันบรรทัด หลังจากประมวลผลล่วงหน้ามีเพียงบางบรรทัดเท่านั้นที่แตกต่างกัน เส้นที่เหลือเหล่านี้อาจเป็นความแตกต่างที่แท้จริงหรือกลุ่มของเส้นที่สับ ความแตกต่างแบบรวมทำให้ฉันเห็นความแตกต่างโดยละเอียด แต่มันทำให้การเปรียบเทียบแบบแมนนวลกับลูกตานั้นยาก diffs แบบเคียงข้างกันมีประโยชน์มากกว่าสำหรับการเปรียบเทียบ แต่มันยังเพิ่มบรรทัดที่ไม่เปลี่ยนแปลงนับพัน มีวิธีที่จะได้รับประโยชน์จากทั้งสองโลกหรือไม่? หมายเหตุไฟล์บันทึกเหล่านี้สร้างขึ้นโดยxscopeเป็นโปรแกรมที่ตรวจสอบข้อมูลโปรโตคอล Xorg ฉันกำลังมองหาเครื่องมือที่ใช้งานทั่วไปที่สามารถนำไปใช้กับสถานการณ์ที่คล้ายกับที่กล่าวมาข้างต้นไม่ใช่เครื่องมือวิเคราะห์บันทึกการเข้าถึงเว็บเซิร์ฟเวอร์โดยเฉพาะ ตัวอย่างล็อกไฟล์สองไฟล์มีอยู่ที่http://lekensteyn.nl/files/qemu-sdl-debug/ ( log13และlog14) คำสั่งตัวประมวลผลล่วงหน้าสามารถพบได้ในxscope-filterไฟล์ที่ลบการประทับเวลาและรายละเอียดเล็กน้อยอื่น ๆ
40 diff 

4
ใช้ความแตกต่างระหว่างไฟล์โลคัลและรีโมต
ฉันเชื่อมต่อกับโฮสต์ผ่านทางsshและฉันต้องการเปรียบเทียบ (สมมติว่าdiff) ไฟล์ config บางไฟล์เทียบกับโฮสต์อื่นในโฮสต์อื่นเข้าถึงได้ผ่านทางsshโดยไม่ต้องดาวน์โหลดไฟล์ระยะไกลด้วยตนเองก่อนที่จะเรียกใช้ diff
39 bash  ssh  diff 

3
เปรียบเทียบสองไดเร็กทอรีซ้ำกับ diff -r โดยไม่ต้องเอาต์พุตบนลิงก์ที่เสียหาย
ฉันใช้diff -r a bเพื่อเปรียบเทียบไดเรกทอรีaและbซ้ำ ๆ มันมักจะเกิดขึ้น แต่ที่มีบางส่วนที่ขาดการเชื่อมโยง (ลิงค์เสียเดียวกันทั้งและขไดเรกทอรีและชี้ไปที่เดียวกันเป้าหมายที่ไม่ใช่ที่มีอยู่) diffจะแสดงข้อความแสดงข้อผิดพลาดสำหรับกรณีเหล่านั้นและออกด้วยรหัสทางออกที่ไม่เป็นศูนย์ แต่ฉันต้องการให้มันเงียบและออกด้วย 0 เนื่องจากไดเรกทอรีนั้นเหมือนกันในหนังสือของฉัน ฉันจะทำสิ่งนั้นได้อย่างไร
38 diff 

3
ฉันจะส่งออก diff diff สีให้น้อยลงได้อย่างไร
ฉันใช้ git diff ซึ่งสร้างเอาต์พุตสี อย่างไรก็ตามตอนนี้ฉันพบว่าฉันจำเป็นต้องใช้ diff ทั่วไปสำหรับบางสิ่งบางอย่างและมันให้ผลผลิตจำนวนมากที่อ่านยากเพราะขาดสี ฉันจะทำให้ diff สร้างเอาต์พุตที่อ่านได้และมีสีได้อย่างไร เป็นการดีที่จะลดขนาดให้เล็กลงเพื่อให้ง่ายต่อการตรวจสอบไฟล์ขนาดใหญ่
37 colors  diff  less 


4
diff รายงานสองไฟล์แตกต่างกันแม้ว่าจะเหมือนกัน!
ฉันมีสองไฟล์ซึ่งมีลักษณะเหมือนกันกับฉัน (รวมถึงช่องว่างต่อท้ายและบรรทัดใหม่) แต่ต่างกันว่าพวกเขาต่างกัน แม้ว่าฉันจะทำการdiff -yเปรียบเทียบแบบเคียงข้างกันเส้นก็จะเหมือนกันทุกประการ เอาต์พุตจาก diff เป็นไฟล์ทั้ง 2 ไฟล์ ความคิดใดที่ทำให้เกิดมัน
31 diff 

7
โปรแกรมดู GUI แบบไหนที่คุณอยากแนะนำด้วยฟังก์ชั่น Copy-to-Left / Right
ฉันแทบจะไม่เคยใช้อะไรอื่นนอกจากMeld คุณสามารถแนะนำอะไรอีกไหม มันจะดีเป็นพิเศษถ้าคุณให้เหตุผลสำหรับคำแนะนำของคุณ (เป็นความคิดเห็น) [ หมายเหตุ ] ฉันต้องการทางเลือกเนื่องจาก Meld เพิ่งสูญเสียคุณสมบัติในการคัดลอกเนื้อหาทั้งหมดจากไฟล์หนึ่งไปยังอีกไฟล์หนึ่ง ฉันหมายถึงฟังก์ชั่นที่มีอยู่ผ่านCopy To Left/Rightรายการเมนูคลิกขวา [ อัปเดต ] ฉันเพียงแค่การตรวจสอบและปัญหาที่เกิดขึ้นได้รับการแนะนำให้รู้จักกับ1.3.2 1.3.1 ใช้งานได้ดีและล่าสุดที่ฉันตรวจสอบคือ1.4.0และใช้งานไม่ได้
30 software-rec  gui  diff 

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