Comm - Comm

iletişim
Orijinal yazar (lar)Lee E. McMahon
Geliştirici (ler)AT&T Bell Laboratuvarları, Richard Stallman, David MacKenzie
İlk sürümKasım 1973; 47 yıl önce (1973-11)
İşletim sistemiUnix, Unix benzeri, Plan 9, Cehennem
TürKomut
LisansCoreutils: GPLv3 +

iletişim komut Unix bilgisayar ailesi işletim sistemleri ikisini karşılaştırmak için kullanılan bir yardımcı programdır Dosyalar ortak ve farklı çizgiler için. iletişim içinde belirtilmiştir POSIX standart. Yaygın olarak mevcuttur Unix benzeri 1980'lerin ortalarından sonlarına kadar işletim sistemleri.

Tarih

Tarafından yazılmıştır Lee E. McMahon, iletişim ilk ortaya çıktı Sürüm 4 Unix.[1]

Versiyonu iletişim paketlenmiş GNU Coreutils tarafından yazıldı Richard Stallman ve David MacKenzie.[2]

Kullanım

iletişim metin satırları olarak kabul edilen iki dosyayı girdi olarak okur. iletişim üç sütun içeren bir dosya çıkarır. İlk iki sütun, sırasıyla birinci ve ikinci dosyaya özgü satırları içerir. Son sütun, her ikisinde de ortak olan satırları içerir. Bu işlevsel olarak benzerdir fark.

Sütunlar tipik olarak şu şekilde ayırt edilir: <tab> karakter. Girdi dosyaları ayırıcı karakterle başlayan satırlar içeriyorsa, çıktı sütunları belirsiz hale gelebilir.

Verimlilik için standart uygulamaları iletişim her iki girdi dosyasının aynı satırda sıralanmasını bekler harmanlama sıra, sözcüklere göre sıralanır. sırala (Unix) komutu bu amaçla kullanılabilir.

iletişim algoritması, akımın harmanlama dizisini kullanır. yerel ayar. Dosyalardaki satırların her ikisi de mevcut yerel ayara göre harmanlanmadıysa, sonuç tanımsızdır.

Dönüş kodu

Aksine fark, dönüş kodu iletişim iki dosyanın ilişkisi ile ilgili mantıksal bir önemi yoktur. 0 dönüş kodu başarıyı, dönüş kodu> 0 ise işlem sırasında bir hata oluştuğunu gösterir.

Misal

$ kedi fooelmamuzpatlıcan$ kedi barıelmamuzmuzkabak$ comm foo bar                  elma                  muz          muzpatlıcan          kabak

Bu, her iki dosyanın da bir muza sahip olduğunu gösterir, ancak yalnızca bar ikinci bir muzu var.

Daha ayrıntılı olarak, çıktı dosyası aşağıdaki görünüme sahiptir. Sütunun, baştaki sekme karakterlerinin sayısıyla yorumlandığını unutmayın. t bir sekme karakterini ve n bir yeni satırı (Kaçış karakteri # Programlama ve veri formatları ).

0123456789
0 t tapple n
1 t tbanana n
2 tbanana n
3eggplant n
4 tzsencchbennben n

Diff ile karşılaştırma

Genel anlamda, fark şundan daha güçlü bir yardımcı programdır iletişim. Daha basit iletişim komut dosyalarında kullanım için en uygunudur.

Arasındaki birincil ayrım iletişim ve fark bu mu iletişim sıralama öncesinde satırların sırası hakkındaki bilgileri atar.

Arasında küçük bir fark iletişim ve fark bu mu iletişim iki dosya arasında bir satırın "değiştiğini" göstermeye çalışmayacaktır; satırlar "1 numaralı dosyadan", "2 numaralı dosyadan" veya "her iki" sütununda gösterilir. Bu, iki satırın yalnızca ince farklılıkları olsa bile farklı kabul edilmesini istiyorsa yararlı olabilir.

Diğer seçenekler

iletişim vardır komut satırı seçenekleri üç sütundan herhangi birini bastırmak için. Bu komut dosyası oluşturmak için kullanışlıdır.

Standart girişten bir dosyayı (ancak ikisini birden değil) okuma seçeneği de vardır.

Limitler

Bir sonraki çıktı satırı yazılmadan önce, satır karşılaştırması sırasında her girdi dosyasından en fazla tam satır arabelleğe alınmalıdır.

Bazı uygulamalar işlevli satırları okur readlinebuffer () Sistem belleği yeterliyse, herhangi bir hat uzunluğu sınırı getirmez.

Diğer uygulamalar işlevli satırları okur fgets (). Bu işlev, sabit bir arabellek gerektirir. Bu uygulamalar için, arabellek genellikle POSIX makro LINE_MAX.

Ayrıca bakınız

Referanslar

  1. ^ McIlroy, M. D. (1987). Bir Araştırma Unix okuyucusu: Programcı El Kitabı, 1971–1986'dan açıklamalı alıntılar (PDF) (Teknik rapor). CSTR. Bell Laboratuvarları. 139.
  2. ^ https://linux.die.net/man/1/comm

Dış bağlantılar