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

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

4
ฉันจะได้สิ่งที่ตรงข้ามกับ `diff -q '- จับคู่ไฟล์ที่เหมือนกันโดยไม่ต้องพิมพ์เนื้อหา
ฉันมีไฟล์จำนวนมากในไดเรกทอรีและฉันต้องการตรวจสอบว่าพวกเขาทั้งหมดไม่ซ้ำกัน สำหรับความเรียบง่ายสมมติว่าผมมีสามไฟล์: foo.txt, และbar.txt baz.txtหากฉันใช้วงนี้ฉันจะตรวจสอบพวกเขาทั้งหมดต่อกัน: $ for f in ./*; do for i in ./*; do diff -q "$f" "$i"; done; done Files bar.txt and baz.txt differ Files bar.txt and foo.txt differ Files baz.txt and bar.txt differ Files baz.txt and foo.txt differ Files foo.txt and bar.txt differ Files foo.txt and …
13 bash  diff 

3
ฉันจะ "ผสาน" ไฟล์ข้อความสองไฟล์ได้อย่างไร
ฉันเพิ่งอัพเกรดจาก Ubuntu 12.04 เป็น 12.10 และ ณ จุดหนึ่งก็พบว่ามีไฟล์ Apache config ขัดแย้งapache2.confกัน apache2.conf.dpkg-distฉันไม่ให้ฉันเป็นตัวเลือกที่ผสานที่จุดนั้นดังนั้นฉันเพิ่งปฏิเสธแฟ้มใหม่และติดตั้งบันทึกแฟ้มใหม่เป็น ฉันสามารถ diff สองไฟล์ด้วยdiff apache2.conf apache2.conf.dpkg-distและรับเฉพาะบรรทัดที่แตกต่างกัน แต่ฉันต้องการผสานทั้งสองแบบด้วยตนเองว่าฉันจะแก้ไขข้อขัดแย้งใน SVN หรือคอมไพล์ได้อย่างไร ฉันจะทำสิ่งนั้นได้อย่างไร
13 linux  ubuntu  diff  etc  merge 

5
จะทราบได้อย่างไรว่าไฟล์ข้อความเป็นส่วนย่อยของอีกไฟล์หนึ่ง
ฉันพยายามหาวิธีในการตรวจสอบว่าไฟล์ข้อความเป็นส่วนย่อยของอีก .. ตัวอย่างเช่น: foo bar เป็นส่วนย่อยของ foo bar pluto ในขณะที่: foo pluto และ foo bar ไม่ได้เป็นส่วนย่อยของกันและกัน ... มีวิธีทำสิ่งนี้ด้วยคำสั่งหรือไม่? การตรวจสอบนี้จะต้องเป็นการตรวจสอบข้ามและจะต้องกลับมา: file1 subset of file2 : True file2 subset of file1 : True otherwise : False

3
diff -r สำหรับไฟล์บางประเภทเท่านั้น
มีวิธีที่ฉันสามารถทำซ้ำที่แตกต่างกันของสองไดเรกทอรี แต่เปรียบเทียบไฟล์ (ในสถานที่นั้น ๆ ) ที่ตรงกับชื่อไฟล์ที่เฉพาะเจาะจงหรือคำกริยา filetype? เช่นฉันต้องการทำบางสิ่งเช่น diff -r dir-a dir-b -filenames *.java, ivy.xml, build.xml ... หรือดีกว่า: diff -r dir-a dir-b -filetype text เห็นได้ชัดว่ามันไม่ได้บังคับให้ใช้diffเพราะฉันคิดว่าคาถาด้วยfindและ-exec diffอาจทำเคล็ดลับ (ฉันเพิ่งไม่รู้วิธีการสร้าง filepaths เสริมในกรณีหลัง)

5
ส่วนหัวของไฟล์ต่าง
ฉันมีสองไฟล์ ฉันสงสัยว่าไฟล์หนึ่งเป็นส่วนย่อยของไฟล์อื่น มีวิธีการแตกไฟล์เพื่อระบุ (ในลักษณะที่รวบรัด) ในไฟล์แรกที่ไฟล์ที่สองเหมาะสมหรือไม่?
11 diff 

3
เปรียบเทียบส่วนหัวของสองไฟล์ใน bash
ฉันสามารถทำได้diff filea filebเพื่อดูความแตกต่างระหว่างไฟล์ ฉันสามารถทำได้head -1 fileaเพื่อดูบรรทัดแรกของ filea หรือ fileb ฉันจะรวมคำสั่งเหล่านี้เพื่อแสดงความแตกต่างระหว่างบรรทัดแรกของ filea และบรรทัดแรกของ fileb ได้อย่างไร
11 bash  shell  diff  head 

1
ระบุกลุ่มข้อความที่ซ้ำกันภายในไฟล์
มีวิธีที่สะดวกในการระบุการทำซ้ำหรือใกล้บล็อคข้อความที่ซ้ำกันภายในไฟล์หรือไม่? ฉันต้องการใช้สิ่งนี้เพื่อระบุการทำสำเนารหัส ดูเหมือนว่ามีโปรแกรมพิเศษที่มีความสามารถนี้ แต่ฉันไม่ต้องการเข้าไปเกี่ยวข้อง ฉันหวังว่าจะมีเครื่องมือคล้ายกับ diff ที่จะสามารถจัดเรียง "ภายในไฟล์" diff ยิ่งไปกว่านั้นจะเป็นไฟล์ภายใน vimdiff

1
diff แสดงความแตกต่างภายในบรรทัดเท่านั้น
ฉันต้องการเปรียบเทียบบรรทัดในสองไฟล์ แต่เพื่อลดจุดรบกวนในเอาต์พุตฉันต้องการเฉพาะความแตกต่างที่แท้จริงในบรรทัดที่จะพิมพ์ ตัวอย่างเช่นกำหนดสองไฟล์ด้านล่าง: a.txt a b c d e f g h i j k l m n o p q r s t u v w x y z b.txt a B c d e f g h i j k l m n o p q r s …

2
diff characterwise
มีเครื่องมือที่มีเสถียรภาพ (ตัวเลือก / ปลั๊กอินของเครื่องมือที่มีอยู่: vimdiff, diff, ฯลฯ ) ใน Linux เพื่อทำ diff ระหว่างสองไฟล์ข้อความตามตัวอักษร? ฉันต้องการดูการเรียงลำดับทั่วไปที่ยาวที่สุดระหว่างไฟล์สองไฟล์ที่ไฮไลต์ มีอัลกอริธึมเวลาพหุนามคลาสสิกสำหรับเรื่องนั้น แต่เครื่องมือมาตรฐานดูเหมือนจะทำงานทีละบรรทัด

1
มี bdiff (1) ใน Linux หรือไม่
มีbdiff(1)คำสั่งใน Solaris ซึ่งอนุญาตให้คุณdiff(1)ไฟล์ที่มีขนาดใหญ่กว่าขนาด RAM ของคุณ ( http://docs.oracle.com/cd/E19683-01/806-7612/files-23/index.html ) มีอะไรอย่างนั้นใน Linux? ฉันลองใช้ Google แต่ไม่พบแพ็คเกจที่มีbdiffใน Ubuntu
9 diff 

2
วิธีรวมไฟล์ใหม่เข้าไปในแพทช์
ฉันพยายามที่จะทำให้แพทช์เป็นแนะนำที่นี่ ว่าฉันมีสองไดเรกทอรีpp1(modified version)และpp0(clean version)ฉันทำไฟล์แก้ไขpp0.patchด้วยdiffคำสั่ง: diff -crB pp0 pp1 > pp0.patch ปัญหาคือถ้ามีไฟล์ใน pp1 เท่านั้นมันจะไม่รวมอยู่ในแพทช์ จะหลีกเลี่ยงมันได้อย่างไร UPDATE : ก่อนอื่นฉันเปลี่ยนเป็นไดเรกทอรีของ pp0 และทดสอบว่าแพตช์จะสำเร็จหรือไม่ patch --dry-run -p1 -i /path-to-pp0.patch แม้ว่าฉันได้เพิ่ม--new-fileไปยังdiffคำสั่งเหล่านั้นเท่านั้นpp1ที่ไม่ได้อยู่ในรายการผลลัพธ์ UPDATE : ฉันได้ทำการแก้ไขไฟล์ผิดโดยบังเอิญ diff -crb --new-file pp1 pp0 > pp0.patch หรือ diff -crNb pp1 pp0 > pp0.patch จะทำ
9 diff  patch 

4
ฉันจะได้รับผลสูงสุดสำหรับเจ้าชู้ของฉันด้วยคำสั่ง "diff" ได้อย่างไร
ฉันได้ลองใช้diffคำสั่งlinux ในอดีตโดยไม่โชคหรือความอดทนมาก ฉันมักจะจบลงด้วยการใช้ยูทิลิตี้ GUI เช่น DiffMerge หรือ Kdiff เมื่อเร็ว ๆ นี้ฉันเริ่มลองใช้diffอีกครั้งเพื่อเปรียบเทียบไฟล์บนระบบรีโมตผ่าน ssh และฉันพบว่า-y / --side-by-sideตัวเลือกมีประโยชน์มาก แต่ฉันก็ยังรู้สึกว่าฉันไม่ได้ใช้ประโยชน์จากยูทิลิตี้นี้เป็นส่วนใหญ่ ดังนั้นฉันอยากรู้วิธีการบรรลุสิ่งต่อไปนี้: ไฮไลต์การเปลี่ยนแปลงหรือใช้การเข้ารหัสสีเพื่อให้เอาต์พุตอ่านง่ายขึ้น ผสาน - เลือกเส้นที่มีความแตกต่างและมีผลต่อการเปลี่ยนแปลงเป็นหนึ่งในไฟล์ นอกจากนี้ฉันยังไม่พบตัวอย่างที่ดีมากมายเมื่อ googling ดังนั้นหากคุณมีเคล็ดลับ linux-fu สำหรับการใช้ประโยชน์สูงสุดจากความแตกต่างคุณสามารถแบ่งปันได้ไหม ฉันจะเปรียบเทียบไฟล์กำหนดค่าแบบข้อความเป็นหลัก แต่เทคนิคและเคล็ดลับใด ๆ จะยอดเยี่ยม สำหรับการอ้างอิง - ยูทิลิตี้ DiffMerge แสดงการเปลี่ยนแปลงแบบเคียงข้างกันได้อย่างง่ายดายด้วยการเน้นสี ไอคอนที่ด้านบนช่วยให้คุณสามารถสลับระหว่างมุมมองของ "แสดงทั้งหมด" "แสดงความแตกต่าง" และ "แสดงความแตกต่างกับบริบท" ชอบฟังก์ชั่นนี้ที่พรอมต์คำสั่ง PS: ฉันยังควรทราบว่าตัวเลือกอื่น ๆ หนึ่งที่ผมพบว่ามีประโยชน์มาก--suppress-common-linesที่ฉันได้เรียนรู้เกี่ยวกับเรื่องนี้กระชับและอ่านบล็อกโพสต์

6
เปรียบเทียบไฟล์ที่อยู่ในไดเรกทอรี 1 แต่ไม่ใช่ไดเรกทอรี 2 หรือไม่
ฉันมีปัญหากับสคริปต์ทุบตีที่ฉันต้องการ ฉันรู้ว่า ls จะแสดงรายการไฟล์ที่อยู่ในไดเรกทอรี แต่ฉันต้องการให้แสดงรายการไดเรกทอรีที่อยู่ใน directory1 แต่ไม่อยู่ใน directory2 แล้วจึงแสดงรายการไฟล์ใน directory2 ที่ไม่ได้อยู่ใน directory1 ในความพยายามที่อ่อนแอฉันพยายาม: ls -al | diff directory1 directory2 ฉันรู้ได้อย่างรวดเร็วว่าทำไมมันไม่ทำงาน ใครสามารถช่วยทุบตีคนบ้าคลั่งทั้งหมดได้หรือไม่?
9 bash  shell-script  ls  diff 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.