Seringkali berguna untuk membandingkan versi file teks. Untuk administrator sistem dan pengembang perangkat lunak, ini sangat penting. Seorang administrator sistem mungkin, misalnya, perlu membandingkan file konfigurasi yang ada dengan versi sebelumnya untuk mendiagnosis masalah sistem. Demikian juga, seorang programmer sering kali perlu melihat perubahan apa yang telah dibuat pada program dari waktu ke waktu.
komunikasi utilitas menampilkan perbandingan baris demi baris dari dua file yang diurutkan. Yang pertama dari tiga kolom yang ditampilkannya mencantumkan baris yang hanya ditemukan di file1, kolom kedua mencantumkan baris yang hanya ditemukan di file2, dan yang ketiga mencantumkan baris yang umum untuk kedua file. Sintaks dasar untuk perintah “comm” adalah:
# comm [options] file1 file2
Argumen
Argumen file1 dan file2 adalah nama path dari file yang dibandingkan dengan comm. Menggunakan tanda hubung (–) sebagai ganti file1 atau file2 menyebabkan comm membaca input standar alih-alih file itu.
Opsi
Anda dapat menggabungkan opsi. Tanpa opsi, comm menghasilkan keluaran tiga kolom.
Opsi | Fungsi |
---|---|
-1 | Tidak menampilkan kolom 1 (tidak menampilkan baris yang hanya ditemukan di file1). |
-2 | Tidak menampilkan kolom 2 (tidak menampilkan baris yang hanya ditemukan di file2). |
-3 | Tidak menampilkan kolom 3 (tidak menampilkan baris yang ditemukan di kedua file). |
-i | Perbandingan garis yang tidak peka huruf besar/kecil. |
– -check-order | Periksa urutan input, meskipun semua jalur input dapat dipasangkan |
– -nocheck-order | Abaikan urutan input |
– -output-delimiter=STR | membatasi kolom dengan pembatas “STR” |
– -bantuan | Menampilkan menu bantuan |
– -versi | Menampilkan informasi versi perintah |
Contoh penggunaan perintah “comm” di Linux
Contoh 1:Penggunaan dasar
Mari kita lihat contoh dasar perintah "comm" untuk membandingkan 2 file yang diurutkan. Filenya seperti di bawah ini:
# cat file1 aa bb cc dd
# cat file2 cc xx yy zz
Perintah comm membandingkan file baris demi baris dan menampilkan semua baris yang identik. Misalnya:
# comm file1 file2 aa bb cc dd xx yy zz
Output perintah ini ditampilkan dalam tiga kolom:kolom 1 hanya menampilkan baris di file1 (aa, bb, dd), kolom2 menampilkan setiap baris hanya di file2 (xx, yy, zz), dan kolom 3 menunjukkan setiap baris yang sama antara dua file (cc). Ini adalah perbandingan yang jauh lebih detail dibandingkan dengan diff, dan hasilnya bisa sangat banyak ketika yang Anda inginkan hanyalah menemukan atau memeriksa satu atau dua perubahan sederhana. Namun, ini bisa sangat berguna jika Anda tidak terlalu paham dengan salah satu file dan ingin melihat perbandingannya.
Contoh 2:Menekan kolom
comm mendukung opsi dalam bentuk -n di mana n adalah 1, 2, atau 3. Saat digunakan, opsi ini menentukan kolom mana yang akan ditekan. Misalnya, jika kita ingin menampilkan hanya baris yang dibagikan oleh kedua file, kita akan menekan output dari kolom 1 dan 2:
# comm -12 file1 file2 cc
Demikian pula, Anda hanya dapat menampilkan baris yang masing-masing hanya ada di file1 dan file2 menggunakan perintah di bawah ini.
# comm -23 file1 file2 aa bb dd
# comm -13 file1 file2 xx yy zz
Contoh 3:Sorting check pada input
perintah comm menyediakan 2 opsi untuk memeriksa input yang diurutkan:
1. –periksa-pesan
2. –nocheck-order
–memeriksa pesanan pilihan memeriksa bahwa input diurutkan dengan benar sebelum membandingkan. Jika input tidak diurutkan, Anda akan mendapatkan kesalahan seperti yang ditunjukkan di bawah ini:
# comm --check-order file1 file2 aa bb cc dd xx comm: file 2 is not in sorted order
Sedangkan –nocheck-order opsi memungkinkan perbandingan file bahkan jika input tidak dalam format yang diurutkan. Misalnya:
# cat file1 aa bb cc dd
# cat file2 xx cc yy zz
# comm --nocheck-order file1 file2 aa bb cc dd xx yy zz
Contoh 4:keluaran yang dibatasi
comm juga menyediakan opsi untuk menghapus output menggunakan pembatas yang disediakan pengguna. Misalnya, alih-alih output yang dibatasi "tab" default, kita dapat menggunakan pembatas seperti "|" (pipa) seperti yang ditunjukkan pada contoh di bawah ini:
# comm --output-delimiter="|" file1 file2 aa bb ||cc dd |xx |yy |zz
comm V/s diff
komunikasi mirip dengan diff di mana kedua perintah membandingkan dua file. Tapi comm juga bisa digunakan seperti uniq; comm memilih baris duplikat atau unik antara dua file yang diurutkan, sedangkan uniq memilih baris duplikat atau unik dalam file yang diurutkan yang sama.