İki dosyanın başlarını bash ile karşılaştırın


11

Yapabileceğim diff filea filebdosyalar arasındaki farkı görmek için. Ben de head -1 fileafilea veya fileb ilk satırını görmek için yapabilirim. Filea'nın ilk satırı ile fileb'in ilk satırı arasındaki farkı göstermek için bu komutları nasıl birleştirebilirim?

Yanıtlar:


22

Kabuğunuz işlem değiştirmeyi destekliyorsa , şunları deneyin:

diff <(head -n 1 filea) <(head -n 1 fileb)

Bir yerde işlem alt komutunu görmüştüm, ama ne yaptığını bilmiyordum. Teşekkürler !
— edi9999

6

Her dosyanın yalnızca ilk satırını karşılaştırıyorsanız, belki de satır içindeki kelime düzeyinde değişiklikleri önemsersiniz dwdiff:

dwdiff <(head -n 1 filea) <(head -n 1 fileb)

dwdiff-cdeğiştirilen kelimeleri renklendirmek gibi bazı güzel seçeneklere sahiptir .

Veya sedkafa yerine kullanarak :

dwdiff <(sed 1q filea) <(sed 1q fileb)

bu kafa için el kafa sözdizimi zamanla değiştiğini olarak göstermektedir, kafa daha taşınabilir head -1vshead -n 1

Ayrıca, değişiklikleri daha az yazarak sadece göz küresi yapabilirsiniz:

head -n1 -q filea fileb

kolay görsel karşılaştırma için iki çizgiyi diğerinin altında görüntüler.


0

Kullanabilirsiniz:

if [ "`head -1 file1`" == "`head -1 file2`" ]; then echo "the same"; fi

2
Dosya1 boş bir dosyaysa (veya okunamıyorsa) ve dosya2'nin ilk satırının boş olması durumunda "aynı" yanıtını vereceğini unutmayın.
— Stéphane Chazelas

Bu yöntemin 'salak kanıtı' olduğunu söylemedim ama hızlıca iki dosyanın ilk satırını eşleştirmek istiyorsanız ...
— Lambert
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.