Uzun bir satırlık dosyada diff kullanımı


25

Sadece bir satırlık bir dosyam var. Büyüklüğü yaklaşık 20.000 bayttır.

Dosya değiştirildi ve nerede olduğunu bilmek istedim.

Diff kullanarak düşündüm, ama bana tam satırı gösterir, çünkü farkı olan satırı çıkarır - ancak bu durumda dosyada farklılıkları olan tek satırdır.

Bu yüzden farkın ne olduğunu görmek istedim.

Herhangi bir tavsiye?



2
fmt'a bağlamayı denediniz mi (tabii ki linux kullanıyorsanız) "fmt -w 50 long.txt | diff"
l1zard

Yanıtlar:


13

Normal metinde olduğu gibi birçok boşluk bulunduğunu varsayarak, dosyayı sözcüklere göre ayırabilir ve normal bir diff aracıyla karşılaştırabilirsiniz, örneğin, meld:

tr -s ' ' '\n' < file1.txt > file1.txt.split
tr -s ' ' '\n' < file2.txt > file2.txt.split
meld file1.txt.split file2.txt.split

2
Benim için en basit çözüm gibi görünüyor. Kendi içindeki fark sorunu önemsizdir, ancak çoğu araç (yalnızca diff araçları değil) uzun satırları yönetemez, bu nedenle sorun farklılaşanın kendisini değil, uzun / uzun satırlarla ilgilenmektir.
p1100i

4

Satır içi fark yapan bir fark bulurdum. UNIX'te xxdiff kullanıyorum . Ben WinMerge Windows içi satır içi fark olduğunu düşünüyorum .

Diğer cevaplar da iyidir: kırılma veya parçalara ayrılma - yığın sınırları, verilerin bir boru veya virgülle sınırlandırılıp sınırlandırılmayacağını tanımlamak daha kolaydır.


1
FYI, satırlar 32768 karakterden uzunsa
xxdiff

3

Bu bir kerelik bir sorunsa, \nher 50 karakterde bir karakter eklenmiş dosyaların kopyalarını oluşturur , sonra da bu kopyaları dağıtırdım. (50'yi seçtim, çünkü matematiğin orijinal dosyalarda farklı satır numaralarından bayt uzaklıklarına gitmesini kolaylaştırıyor, ancak bulduklarım temelinde yukarı / aşağı ayarlayabilir.)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.