GNU/Linux >> Belajar Linux >  >> Linux

Perintah "comm" di Linux dengan Contoh

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
Catatan :Jika file belum diurutkan, comm tidak akan berfungsi dengan baik. Baris di kolom kedua didahului oleh satu TAB, dan baris di kolom ketiga didahului oleh dua TAB. Status keluar menunjukkan apakah komunikasi selesai secara normal (0) atau tidak normal (bukan 0).

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.


Linux
  1. Perintah Tee Linux dengan Contoh

  2. Perintah kepala Linux dengan Contoh

  3. Perintah JQ di Linux dengan Contoh

  1. Perintah wc Linux dengan Contoh

  2. Perintah sortir Linux dengan Contoh

  3. Perintah Echo di Linux (Dengan Contoh)

  1. Perintah man di Linux dengan Contoh

  2. Perintah AWK di Linux dengan Contoh

  3. Perintah Curl di Linux dengan Contoh