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

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

4
กระจายหลายไฟล์จริงถ้าไม่เท่ากันทั้งหมด
ฉันมีไฟล์จำนวนหนึ่งฉันต้องการตรวจสอบว่าไฟล์เหล่านั้นมีเนื้อหาเดียวกัน บรรทัดคำสั่งอะไรที่ฉันสามารถใช้เพื่อตรวจสอบสิ่งนั้น การใช้งานอาจเป็นสิ่งที่ชอบ: $ diffseveral file1 file2 file3 file4 ผลลัพธ์: All files equals หรือ Files are not all equals
18 bash  diff 

12
วิธีการส่งออกสี diff?
ฉันต้องการฟอร์แมตไฟล์ Unix แบบมีเงื่อนไขตอนนี้ฉันกำลังทำงานกับdiffคำสั่งและต้องการทราบว่าเป็นไปได้หรือไม่ที่จะจัดรูปแบบข้อความของdiffเอาต์พุตคำสั่ง ตัวอย่าง: ค่าที่ตรงกันควรแสดงเป็นสีเขียว ค่าที่ไม่ตรงกันควรแสดงเป็นสีแดง สมมติว่าฉันมีสองไฟล์file1และคำสั่งของฉันคือfile2diff file1 file2 ตอนนี้ฉันต้องการที่สมมติว่าผลลัพธ์มี 5 ไม่ตรงกันจากนั้นไม่ตรงกันเหล่านั้นควรจะแสดงในสีแดง วิธีการบรรลุสิ่งนี้โดยใช้ยูนิกซ์? ในระยะสั้น "เปลี่ยนสีเป็นสีแดงสำหรับผลลัพธ์ของคำสั่ง diff สำหรับค่าที่ไม่ตรงกัน"
18 bash  ksh  diff 

5
แตกต่างกันสำหรับการจัดเก็บไฟล์ที่คล้ายกันสูง?
ที่ทำงานเราทำการถ่ายโอนฐานข้อมูล mysql ของเราทุกคืน จากวันต่อวันฉันจะแขกที่ใกล้ถึง 90-95% ของข้อมูลที่ซ้ำกันเพิ่มขึ้นเมื่อเวลาผ่านไป (Heck ณ จุดนี้บางคนอาจจะ 99%) การทิ้งเหล่านี้เป็นที่หนึ่งบรรทัดคือคำสั่ง mysql INSERT เดียวดังนั้นความแตกต่างเพียงอย่างเดียวคือทั้งบรรทัดและลำดับที่พวกเขาอยู่ในไฟล์ ถ้าฉันจัดเรียงมันความแตกต่างจริงจากไฟล์ต่อไฟล์จะเล็กมาก ฉันค้นหาแล้วและฉันไม่พบวิธีการเรียงลำดับผลลัพธ์ตามดัมพ์ แต่ฉันสามารถส่งผ่านsortคำสั่งได้ จากนั้นจะมีบล็อกยาวที่มีความยาวเหมือนกัน ดังนั้นฉันจึงพยายามหาวิธีที่จะเก็บเฉพาะส่วนต่าง ฉันสามารถเริ่มต้นด้วยการถ่ายโอนข้อมูลหลักและแตกต่างจากนั้นในแต่ละคืน แต่ความแตกต่างจะมีขนาดใหญ่ขึ้นทุกคืน หรือฉันจะทำให้ความแตกต่างซึ่งเป็นรายบุคคลจะเล็กมาก แต่ดูเหมือนว่ามันจะใช้เวลานานในการคำนวณถ้าฉันต้องรวบรวมเจ้านายที่แตกต่างกันของซีรีส์ทั้งหมดในแต่ละคืน เป็นไปได้หรือไม่ ด้วยเครื่องมืออะไร แก้ไขฉันไม่ได้ถามวิธีการสำรองข้อมูล mysql ลืม mysql สักครู่ มันเป็นปลาเฮอริ่งแดง สิ่งที่ฉันอยากรู้คือวิธีการทำชุดของการกลิ้งแตกต่างจากชุดของไฟล์ ทุกคืนเราจะได้รับไฟล์ (ซึ่งเกิดขึ้นเป็นไฟล์ mysqldump ) ที่ 99% คล้ายกับไฟล์ก่อนหน้า ใช่เรา gzip พวกเขาทั้งหมด แต่มันซ้ำซ้อนที่จะมีความซ้ำซ้อนนั้นในตอนแรก สิ่งที่ฉันต้องการจริงๆคือความแตกต่างจากเมื่อคืนก่อน ... ซึ่งเพียง 1% แตกต่างจากเมื่อคืนก่อน ... และอื่น …

3
มีเครื่องมือ Linux diff ลึกที่เปรียบเทียบคุณสมบัติของไฟล์หรือไม่
มีเครื่องมือ Linux เช่น diff ที่จะเปรียบเทียบไฟล์และไดเรกทอรีซ้ำ แต่ด้วยนอกเหนือจากการเปรียบเทียบ: คุณลักษณะเพิ่มเติมของ acl, บริบทบริบท?
17 linux  diff  acl 

2
เครื่องมือในยูนิกซ์เพื่อลบไฟล์ข้อความ?
ฉันมีไฟล์ขนาดใหญ่ประกอบด้วยเขตข้อมูลข้อความคั่นด้วยเครื่องหมายอัฒภาคในรูปแบบของตารางขนาดใหญ่ มันได้รับการจัดเรียง ฉันมีไฟล์ขนาดเล็กที่ประกอบด้วยฟิลด์ข้อความเดียวกัน เมื่อถึงจุดหนึ่งบางคนต่อไฟล์นี้กับผู้อื่นแล้วเรียงลำดับเพื่อจัดทำไฟล์ขนาดใหญ่ที่อธิบายไว้ข้างต้น ฉันต้องการลบเส้นของไฟล์ขนาดเล็กออกจากไฟล์ใหญ่ (เช่นสำหรับแต่ละบรรทัดในไฟล์ขนาดเล็กหากมีสตริงการจับคู่อยู่ในไฟล์ขนาดใหญ่ให้ลบบรรทัดนั้นในไฟล์ขนาดใหญ่) ไฟล์มีลักษณะเช่นนี้โดยประมาณ GenericClass1; 1; 2; NA; 3; 4; GenericClass1; 5; 6; NA; 7; 8; GenericClass2; 1; 5; NA; 3; 8; GenericClass2; 2; 6; NA; 4; 1; ฯลฯ มีวิธีที่ดีงามอย่างรวดเร็วในการทำเช่นนี้หรือฉันต้องใช้ awk?

2
นี่เป็นวิธีที่ดีในการสร้างแพตช์หรือไม่?
ฉันต้องการสร้างแพทช์จากgccสาขาที่เฉพาะเจาะจงเปรียบเทียบกับการวางจำหน่ายอย่างเป็นทางการ ดังนั้นเมื่อฉันนำ tarball ออกจากการวางจำหน่ายที่เสถียรฉันสามารถใช้ตัวแก้ไขและรับสิ่งที่เทียบเท่าในสาขานั้น นี่เป็นครั้งแรกที่ฉันต้องสร้างแพตช์ดังนั้นมันเป็นครั้งแรกที่ฉันทำสิ่งนี้และสิ่งที่ฉันกังวลหลักคือการหาตัวเลือกและการแยกวิเคราะห์ที่ถูกต้องเนื่องจากเรากำลังพูดถึงซอฟต์แวร์ที่สำคัญอย่างยิ่ง diff -crB GccStable GccGit > /tmp/fromStabletoBranch.patch นี่เป็นวิธีที่ดีที่สุดและเพียงพอหรือไม่
15 diff  patch 

3
การเปรียบเทียบไดเรกทอรีใน Emacs
ฉันกำลังทดลองกับediff-directoriesแต่ฉันไม่แน่ใจว่าฉันใช้มันถูกต้อง ฉันอ่านในเอกสารที่เมื่อฉันจัดหาสองไดเรกทอรีให้ediff-directoriesถ้าฉันกด==Emacs เปรียบเทียบพวกเขาซ้ำ ๆ อย่างไรก็ตามถ้าฉันกด==ฉันจะได้รับโฟลเดอร์ที่มี=เครื่องหมาย (หมายความว่าทั้งสองโฟลเดอร์มีเนื้อหาเหมือนกัน) ในระดับที่ฉันเรียกใช้คำสั่ง หากฉันต้องการดูว่าโฟลเดอร์ใดมี=เครื่องหมายที่ระดับลึกกว่าในลำดับชั้นของโฟลเดอร์ฉันต้องเรียกใช้==คำสั่งอีกครั้งในแต่ละระดับ ฉันจะบอก emacs ให้ออกไปเรื่อย ๆ จนไปถึงใบไม้ได้อย่างไรเพื่อที่ฉันจะได้เห็นความแตกต่างทั้งหมดในdirectory difference buffer(สามารถเข้าถึงได้ผ่านคำสั่งแป้นพิมพ์D) หากใครรู้เกี่ยวกับการสอนเกี่ยวกับวิธีการใช้ediff-directories(นอกเหนือจากเอกสารอย่างเป็นทางการ) ฉันจะสนใจอย่างมาก นอกจากนี้หากฉันต้องการออกจากกลุ่มเซสชัน (เปรียบเทียบโฟลเดอร์ที่ระดับหนึ่ง) แต่ฉันมีเซสชันเปิดสำหรับระดับที่ลึกกว่าถ้าฉันกดq(ออกจากกลุ่มเซสชันนี้) Emacs บ่นกับ messaage: กลุ่ม sesssion นี้มีเซสชันที่ใช้งานอยู่ --- ไม่สามารถออกได้ ฉันจะออกจากกลุ่มเซสชันโดยไม่ออกจากเซสชันย่อยหนึ่งต่อหนึ่งได้อย่างไร
15 emacs  diff 

1
rsync สามารถอัปเดตไฟล์ขนาดใหญ่ที่มีการเปลี่ยนแปลงเพียงบางส่วนเท่านั้นโดยไม่ต้องทำการส่งซ้ำอย่างสมบูรณ์หรือไม่
ฉันกำลังทำการเปลี่ยนแปลงเล็กน้อยในไฟล์รูปภาพขนาดใหญ่มาก (แตกต่างกันเพียงไม่กี่พิกเซล) ซึ่งใช้เวลานานในการถ่ายโอนผ่านเครือข่าย มีวิธีการ rsync ในการระบุความแตกต่างในไฟล์และส่งความแตกต่างเล็ก ๆ ผ่านเครือข่ายหรือไม่?
15 rsync  diff 

3
ฉันจะทำ N-way diff ได้อย่างไร
ฉันจะกระจายเอาต์พุตของหลายคำสั่งได้อย่างไร vimdiffสามารถรองรับไฟล์ได้สูงสุดสี่ไฟล์ แต่diffดูเหมือนว่าจะรองรับไฟล์ได้สองไฟล์ เป็นไปได้โดยตรงกับตัวแปรบางอย่างdiffหรือฉันต้องบันทึกผลลัพธ์ของคำสั่งทั้งหมดไปยังไฟล์ชั่วคราวเลือกหนึ่งและกระจายส่วนที่เหลือด้วยหรือไม่ บริบท: ฉันต้องตรวจสอบผลลัพธ์ของคำสั่งบางอย่างบนเซิร์ฟเวอร์หลายเครื่องและดูว่าพวกเขาทั้งหมดเห็นด้วยหรือไม่ ในขณะนี้เพียงรายงานว่าพบความแตกต่างใด ๆ ที่ดูเหมือนว่าดี แต่ถ้าเป็นไปได้ฉันอยากจะบอกว่า: เซิร์ฟเวอร์ X% เห็นด้วยซึ่งกันและกัน Y% ต่อกัน หรือเซิร์ฟเวอร์ Z นั้นเป็นเลขคี่ ฉันมีการตั้งค่า LDAP แบบหลายทางสี่ทางและฉันต้องการตรวจสอบว่าContextCSNค่าสำหรับทั้งสี่เห็นด้วยกัน ดังนั้นตอนนี้ฉัน: #! /bin/bash for i in {1..4}.ldap do ldapsearch -x -LLL -H ldap://$i -s base -b dc=example,dc=com contextCSN > $i.csn; done set -e for i in {2..4} do diff …
14 scripting  diff 

12
เครื่องมือ diff linux: สร้างรายการไฟล์ที่แก้ไข
ฉันจะสร้างรายการไฟล์ที่ถูกแก้ไขโดยใช้เครื่องมือโดยใช้เครื่องมือบรรทัดคำสั่ง linux ได้อย่างไร ฉันไม่สนใจความแตกต่างของไฟล์ใด ๆ (เดลต้าแพทช์) ฉันแค่ต้องการมีรายการไฟล์ใหม่หรือไฟล์ที่ปรับเปลี่ยนแล้วเมื่อเทียบกับรุ่นก่อนหน้า เพื่อให้ฉันสามารถเผยแพร่อัปเดตผลิตภัณฑ์ใหม่ อัปเดต: diff -qrไม่สร้างผลลัพธ์ที่น่าเชื่อถือมาก ผลลัพธ์ของdiff -qrยังจะต้องมีการประมวลผล มีวิธีที่ดีกว่านี้ไหม?

3
'แพทช์สิ้นสุดโดยไม่คาดหมายในกลางบรรทัด' หมายความว่าอะไร
นี่คือผลลัพธ์ของคำสั่ง patch ของฉัน: Hunk #11 merged at 4184,4190. Hunk #12 merged at 4444. Hunk #13 merged at 4944. Hunk #14 NOT MERGED at 5106-5116. Hunk #15 merged at 5290. Hunk #16 merged at 5448. patch unexpectedly ends in middle of line Hunk #17 merged at 5608,5611. คำสั่งคือ patch -d ~/SOME_DIR …

1
เปรียบเทียบไฟล์สองไฟล์แบบบรรทัดต่อบรรทัดอย่างเคร่งครัดโดยไม่มีการแทรกหรือลบ
ฉันมีสองไฟล์ที่มีหน่วยความจำทิ้งในรูปแบบฐานสิบหก ในขณะนี้ฉันใช้ diff เพื่อดูว่าไฟล์ต่างกันหรือไม่ อย่างไรก็ตามสิ่งนี้อาจทำให้เข้าใจผิดเมื่อพยายามระบุตำแหน่งที่แน่นอน (เช่นที่อยู่หน่วยความจำ) ของความแตกต่าง ลองพิจารณาตัวอย่างต่อไปนี้ซึ่งแสดงไฟล์สองไฟล์แบบเคียงข้างกัน file1: file2: 0001 | 0001 ABCD | FFFF 1234 | ABCD FFFF | 1234 ตอนนี้diff -uจะแสดงการแทรกและการลบเพียงครั้งเดียวถึงแม้ว่า 3 บรรทัด (ตำแหน่งหน่วยความจำ) มีการเปลี่ยนแปลงระหว่างสองไฟล์: 0001 +FFFF ABCD 1234 -FFFF มีวิธีง่าย ๆ ในการเปรียบเทียบสองไฟล์เช่นว่าแต่ละบรรทัดจะถูกเปรียบเทียบกับบรรทัดเดียวกันเท่านั้น (ในแง่ของหมายเลขบรรทัด) ในไฟล์อื่น ๆ ? ดังนั้นในตัวอย่างนี้มันควรจะรายงานว่าช่วง 3 สายที่มีการเปลี่ยนแปลงพร้อมกับสายการเปลี่ยนแปลงจากและfile1 file2ผลผลิต doen't จะต้องมีความแตกต่างสไตล์ แต่มันจะเย็นถ้ามันอาจจะมีสี (สีสักครู่ผมที่diff -uส่งออกใช้sedเพื่อให้ได้อย่างง่ายดายสามารถนำไปปรับใช้)

6
วิธีการเปรียบเทียบสองไฟล์ที่แตกต่างกันทีละบรรทัดในยูนิกซ์?
file1: 123 234 345 456 file2: 123 234 343 758 ผลลัพธ์ที่คาดหวัง: File3: TRUE TRUE FALSE FALSE ดังนั้นรหัสควรเปรียบเทียบสองไฟล์และพิมพ์ 'TRUE' หากตรงกันมิฉะนั้นควรพิมพ์ 'FALSE' ในไฟล์ใหม่ ใครช่วยกรุณาแก้ปัญหาสำหรับเรื่องนี้?

3
diff รายงานบรรทัดเดียวกันกับไฟล์ต่างกัน 2 ไฟล์
ฉันมี 2 ไฟล์ที่มีรายการเพลง hdsongs.txt และ sdsongs.txt ฉันเขียนสคริปต์ง่าย ๆ เพื่อแสดงรายการเพลงทั้งหมดและส่งออกไปยังไฟล์ข้อความเพื่อให้ทำงานต่างกัน มันใช้งานได้ดีสำหรับส่วนใหญ่ แต่คำสั่ง diff จริงในสคริปต์แสดงบรรทัดเดียวกันว่าแตกต่างกัน นี่คือสิ่งที่เกิดขึ้นจริงสำหรับหลายบรรทัด แต่ไม่ใช่ทั้งหมด นี่คือตัวอย่างของเพลงในไฟล์ทั้งสอง: $ grep Apologize \*songs\* hdsongs.txt:Timbaland/Apologize.mp3 sdsongs.txt:Timbaland/Apologize.mp3 ไม่มีตัวอักษรพิเศษต่อท้ายที่ฉันเห็นได้: $ cat -A hdsongs.txt sdsongs.txt | grep Apologize Timbaland/Apologize.mp3$ Timbaland/Apologize.mp3$ เมื่อฉันรัน diff มันจะแสดงบรรทัดเดียวกันในไฟล์แต่ละไฟล์ แต่เส้นไม่เหมือนกันหรือ $ diff hdsongs.txt sdsongs.txt | grep Apologize > Timbaland/Apologize.mp3 < Timbaland/Apologize.mp3 สิ่งนี้คล้ายกับเธรดที่นี่: diff …
13 diff 

4
เปรียบเทียบไดเรกทอรีขนาดใหญ่กับรายงานความคืบหน้า
ฉันเพิ่ง rsync-ed 2,000,000 ไฟล์ (3TB) จาก RAID หนึ่งไปยังอีก ฉันต้องการตรวจสอบให้แน่ใจว่าข้อมูลของฉันยังคงอยู่ rsync -c ใช้เวลานานมาก diff ไม่แสดงให้ฉันเห็นว่ากำลังทำอะไรอยู่ มีทางเลือกอื่นที่ (a) เร็วขึ้นและ (b) จะแสดงความคืบหน้าขณะที่กำลังเปรียบเทียบหรือไม่ (ฉันใช้ Mac และbrew search diffให้ฉันapgdiff colordiff diffstat diffutils fmdiff libxdiff open-vcdiff podiff rfcdiff vbindiff bsdiff diffpdf diffuse dwdiff kdiff3 ndiff perceptualdiff rdiff-backup tkdiff wdiff ... หนึ่งในนั้นจะทำงานได้หรือไม่)

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