คำถามติดแท็ก file-comparison

7
rsync เปรียบเทียบไดเรกทอรี?
เป็นไปได้หรือไม่ที่จะเปรียบเทียบสองไดเรกทอรีกับ rsync และพิมพ์ความแตกต่างเท่านั้น มีตัวเลือกแบบรันไทม์ แต่เมื่อฉันเพิ่ม verbosity ในระดับหนึ่งทุกไฟล์ที่เปรียบเทียบจะปรากฏขึ้น ls -alRและdiffไม่มีตัวเลือกที่นี่เนื่องจากมีฮาร์ดลิงก์ในแหล่งที่มาทำให้ทุกบรรทัดแตกต่างกัน (แน่นอนฉันสามารถลบคอลัมน์นี้ด้วย perl.)

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

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เพื่อให้ได้อย่างง่ายดายสามารถนำไปปรับใช้)


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

3
ฉันจะตรวจสอบว่าไฟล์ gzipped สองไฟล์เท่ากันได้อย่างไร
ฉันพยายามประหยัดพื้นที่ในขณะที่ทำการสำรองข้อมูล "โง่" เพียงแค่ทิ้งข้อมูลลงในไฟล์ข้อความ สคริปต์สำรองของฉันทำงานทุกวันและมีลักษณะดังนี้: สร้างไดเรกทอรีชื่อหลังจากวันที่สำรองข้อมูล "$name"การถ่ายโอนข้อมูลข้อมูลบางอย่างลงในแฟ้มข้อความ ถ้าแฟ้มถูกต้อง gzip gzip "$name"มัน มิฉะนั้น, rm "$name". ตอนนี้ฉันต้องการเพิ่มขั้นตอนเพิ่มเติมเพื่อลบไฟล์หากมีข้อมูลเดียวกันในวันก่อน (และสร้าง symlink หรือ hardlink) ตอนแรกฉันคิดว่าจะใช้md5sum "$name"แต่สิ่งนี้ไม่ได้ผลเพราะฉันยังเก็บชื่อไฟล์และวันที่สร้าง ไม่gzipได้มีตัวเลือกที่จะเปรียบเทียบสองไฟล์ gzipped และบอกฉันว่าพวกเขามีค่าเท่ากันหรือไม่? หากgzipไม่มีตัวเลือกดังกล่าวจะมีวิธีอื่นในการบรรลุเป้าหมายของฉันหรือไม่

1
ค้นหาโฟลเดอร์ทั้งหมดในไดเรกทอรีที่มีเนื้อหาเหมือนกัน
ในอูบุนตูมีใครบ้างที่จะค้นหาโฟลเดอร์ที่ซ้ำกันในไดเรกทอรี (เช่นโฟลเดอร์ที่มีเนื้อหาเดียวกัน) ฉันคิดว่ามีเครื่องมือบรรทัดคำสั่งบางตัวสำหรับค้นหาไฟล์ที่ซ้ำกัน (เช่น fdupes) แต่ฉันต้องการค้นหาโฟลเดอร์ที่ซ้ำกันแทน นั่นคือค้นหาโฟลเดอร์ที่ตรงกับเนื้อหาของไฟล์ที่มี (แม้ว่าชื่อไฟล์และข้อมูลเมตาอื่น ๆ อาจแตกต่างกัน)

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

3
จะเปรียบเทียบไฟล์ xml สองไฟล์ที่มีข้อมูลเหมือนกันในบรรทัดที่ต่างกันได้อย่างไร
ฉันมีสองไฟล์มีข้อมูลเหมือนกัน แต่อยู่ในบรรทัดที่ต่างกัน ไฟล์ 1: <Identities> <Identity> <Id>048206031415072010Comcast.USR8JR</Id> <UID>ccp_test_79</UID> <DisplayName>JOSH CCP</DisplayName> <FirstName>JOSH</FirstName> <LastName>CCP</LastName> <Role>P</Role> <LoginStatus>C</LoginStatus> </Identity> <Identity> <Id>089612381523032011Comcast.USR1JR</Id> <UID>94701_account1</UID> <DisplayName>account1</DisplayName> <FirstName>account1</FirstName> <LastName>94701</LastName> <Role>S</Role> <LoginStatus>C</LoginStatus> </Identity> </Identities> ไฟล์ 2: <Identities> <Identity> <Id>089612381523032011Comcast.USR1JR</Id> <UID>94701_account1</UID> <DisplayName>account1</DisplayName> <FirstName>account1</FirstName> <LastName>94701</LastName> <Role>S</Role> <LoginStatus>C</LoginStatus> </Identity> <Identity> <Id>048206031415072010Comcast.USR8JR</Id> <UID>ccp_test_79</UID> <DisplayName>JOSH CCP</DisplayName> <FirstName>JOSH</FirstName> <LastName>CCP</LastName> <Role>P</Role> <LoginStatus>C</LoginStatus> </Identity> </Identities> ถ้าฉันใช้diff file1 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.