GNU/Linux >> Belajar Linux >  >> Linux

Perintah com Linux dengan Contoh

Pendahuluan

comm command adalah utilitas Linux sederhana untuk membandingkan file dengan fokus pada konten umum. Perintah tersebut membandingkan dua file yang diurutkan baris demi baris dan menampilkan hasilnya dalam tiga kolom.

Panduan berikut akan menjelaskan cara menggunakan comm Linux perintah dengan contoh.

Prasyarat

  • Sistem yang menjalankan Linux.
  • Akses ke terminal.

comm Sintaks Perintah

comm perintah dijalankan dengan setidaknya dua argumen yang menyatakan nama file yang akan dibandingkan. Menambahkan opsi sebelum nama file menyesuaikan output.

Dasar comm sintaksnya adalah:

comm [file_name_1] [file_name_2]
comm [options] [file_name_1] [file_name_2]

Namun, menjalankan comm tanpa opsi apa pun tidak memberikan hasil dan mencetak output berikut:

Opsi Perintah com

Menggunakan comm sederhana, tetapi menambahkan opsi memberikan penyesuaian tambahan.

Tabel di bawah mencakup semua comm pilihan:

Perintah Deskripsi
-1 Mencetak output tanpa kolom pertama, menyembunyikan baris unik untuk file pertama.
-2 Menyembunyikan kolom kedua di output (baris unik untuk file kedua).
-3 Tidak mencetak kolom yang berisi baris umum.
--check-order Memeriksa apakah file diurutkan.
--nocheck-order Mencetak hasil tanpa memeriksa apakah file diurutkan.
--output-delimiter=[any character] Mengganti spasi default dalam output dengan karakter lain.
--total Menampilkan jumlah baris dalam setiap kolom.
-z Menampilkan baris output sebagai NULL-dihentikan alih-alih output default yang diakhiri baris baru.
--help Menampilkan informasi bantuan.
--version Menampilkan informasi versi.

Contoh Linux comm

comm perintah bekerja dengan dua file yang diurutkan. Untuk memahami bagaimana comm berfungsi, siapkan lingkungan pengujian:

  1. Buat dua file pengujian.
  2. Beri nama file (misalnya, File_1 dan File_2).
  3. Tambahkan kata atau angka yang berbeda ke setiap file.
  4. Pastikan beberapa konten tumpang tindih.

Catatan: Linux menawarkan banyak cara untuk membuat file dari terminal. Cara termudah adalah dengan menggunakan perintah sentuh.

Gunakan perintah cat untuk menampilkan File_1 dan File_2 isi. Outputnya menunjukkan bahwa file tumpang tindih dalam tiga kata (art , anjing , dan jalan ):

Bagian berikut menggunakan File_1 dan File_2 untuk menjelaskan bagaimana comm bekerja.

Bandingkan Dua File

Bandingkan dua file yang diurutkan baris demi baris dengan:

comm File_1 File_2

Perintah mencetak hasil dalam tiga kolom:

  • Kolom 1 hanya menampilkan nilai unik untuk file pertama.
  • Kolom 2 mencetak item yang hanya ada di file kedua.
  • Kolom 3 menampilkan konten umum untuk kedua file:seni , anjing , dan jalan .

Sembunyikan Kolom

Gunakan argumen -1 , -2 , dan -3 dan kombinasi untuk hanya menampilkan kolom tertentu. Misalnya, cetak hanya baris yang umum untuk kedua file dengan:

comm -12 File_1 File_2

Menggunakan -12 dengan comm menyembunyikan kolom pertama dan kedua, hanya menyisakan satu baris yang berisi baris yang dibagikan oleh kedua file.

Sebaliknya, -3 menyembunyikan kolom tiga dan menampilkan baris unik untuk setiap file:

comm -3 File_1 File_2

Abaikan Kasus

Perbandingan dengan comm peka huruf besar/kecil. Semua kata di File_1 dan File_2 huruf kecil, jadi comm mengenali seni , anjing , dan jalan seperti biasa untuk kedua file.

Namun, jika, misalnya, kata seni huruf besar di File_1 tapi huruf kecil di File_2, outputnya adalah:

Perbedaan huruf besar dengan kata seni /Seni antara dua file prompt comm untuk mendaftarkan kata sebagai unik untuk setiap file. Sementara comm tidak menerima -i sebagai opsi untuk mengabaikan huruf besar/kecil, opsi tr memberikan solusi.

Gunakan Tr pada dua file untuk mengonversi huruf besar dan kemudian mengarahkan output ke file sementara (Temp_1 , Temp_2 ):

tr A-Z a-z <File_1 > Temp_1
tr A-Z a-z <File_2 > Temp_2

Tr mengonversi konten di kedua file menjadi huruf kecil dan membuat file baru untuk menyimpan output (Temp_1 , Temp_2 ). File asli tetap tidak berubah.

Jalankan comm pada Temp_1 dan Temp_2 untuk membandingkan file saat "mengabaikan" huruf besar:

comm Temp_1 Temp_2

Perintah mengeluarkan huruf kecil art sebagai kata umum untuk kedua file.

Bandingkan File yang Tidak Disortir

comm perintah hanya menghasilkan output yang berharga ketika file yang diurutkan digunakan sebagai argumen. Saat comm bekerja dengan file yang tidak disortir, output tidak dapat digunakan dan selalu mencetak pesan kesalahan.

Misalnya, dua file berikut tidak diurutkan, seperti yang ditunjukkan dengan cat :

Saat Anda menggunakan comm pada file yang tidak disortir, output akan dicetak:

Sementara comm memasangkan jalur tertentu dan menghasilkan keluaran, keluarannya tidak lengkap dan tidak dapat digunakan. Pesan kesalahan menentukan bahwa tidak ada file yang diurutkan.

Untuk memverifikasi bahwa file tidak diurutkan, gunakan comm --check-order :

comm --check-order Not_Sorted_File_1 Not_Sorted_File_2

--check-order opsi mencetak pesan kesalahan dan menghentikan comm dari membandingkan file pada item pertama yang tidak disortir.

Untuk memaksa comm untuk mencetak keluaran dan menyembunyikan pesan kesalahan, gunakan --nocheck-order :

comm --nocheck-order Not_Sorted_File_1 Not_Sorted_File_2

Outputnya tidak dapat diandalkan. Misalnya, kata seni ada di kolom satu dan dua, meskipun itu umum untuk kedua file.

Cara jitu untuk menggunakan comm dengan file yang tidak disortir adalah menerapkan sort. Jalankan perintah berikut:

comm <(sort Not_Sorted_File_1 ) <(sort Not_Sorted_File_2)

Keluaran menunjukkan bahwa kata-kata seni , anjing , dan jalan umum untuk kedua file.

Perhatikan bahwa sort tanpa argumen hanya mempengaruhi output standar dan tidak mengubah file sumber. Namun, sort dapat digunakan dengan comm other lainnya pilihan.

Misalnya, untuk mencetak hanya kata-kata umum untuk kedua file yang tidak disortir, gunakan:

comm -12 <(sort Not_Sorted_File_1 ) <(sort Not_Sorted_File_2)

Untuk mengurutkan file sumber lalu jalankan comm , gunakan sort -o . -o argumen menyimpan output yang diurutkan ke file tertentu.

Misalnya, urutkan Not_Sorted_File_1 dan simpan hasilnya ke file yang sama dengan:

sort -o Not_Sorted_File_1 Not_Sorted_File_1

Menjalankan cat setelah menyortir file menunjukkan bahwa file diurutkan sekarang. Ulangi proses yang sama untuk file kedua:

sort -o Not_Sorted_File_2 Not_Sorted_File_2

Jalankan comm untuk membandingkan file:

comm Not_Sorted_File_1 Not_Sorted_File_2

Bandingkan Direktori

Gunakan comm dengan ls untuk membandingkan nama file dalam dua direktori. Misalnya, bandingkan Directory1 dan Direktori2 :

comm <(ls Directory1) <(ls Directory2)

Kolom pertama mewakili nama file yang unik untuk Directory1 , yang kedua yang unik untuk Sutradara y2 , dan yang ketiga mewakili nama file yang umum untuk kedua folder.

Saat menjalankan comm dengan ls , perintah hanya melihat nama file, bukan konten. File yang terdaftar sebagai umum untuk kedua folder masih bisa berbeda meskipun memiliki nama yang sama.

Gunakan komunikasi dengan STDIN

Untuk membandingkan file dengan input terminal standar, gunakan tanda hubung sebagai salah satu argumen dengan comm .

Misalnya, bandingkan File_1 dengan input standar menggunakan:

comm File_1 -

Tulis teks untuk membandingkan File_1 langsung ke terminal atau gunakan editor teks.

Setelah menekan Enter , perintah mencetak output dalam tiga kolom, menggunakan STDIN sebagai ganti File_2.

Kolom pertama mewakili konten unik untuk File_1 , yang kedua menunjukkan kata-kata yang hanya ditemukan di input standar, dan kata ketiga yang umum untuk keduanya.

Ubah Pemisah Default

comm output memisahkan kolom dengan spasi secara default. Untuk mengubah pemisah, gunakan --output-delimiter pilihan.

Misalnya, untuk menggunakan * alih-alih spasi, jalankan:

comm --output-delimiter=* File_1 File_2

Keluaran menunjukkan bahwa kata-kata di File_1 tidak memiliki tanda bintang, yang ada di File_2 memiliki satu tanda bintang, dan item yang umum untuk kedua file memiliki dua tanda bintang.

Tampilkan Jumlah Baris

Tampilkan jumlah total baris di setiap kolom dengan --total pilihan:

comm --total File_1 File_2

Output mencetak jumlah baris di bagian bawah setiap kolom.

Kesimpulan

Setelah mengikuti langkah-langkah dari tutorial ini, Anda tahu bagaimana membandingkan file baris demi baris dengan comm memerintah.

Selanjutnya, pelajari cara lain untuk membandingkan file dengan perintah diff.


Linux
  1. Perintah Tee Linux dengan Contoh

  2. Perintah "comm" di Linux dengan Contoh

  3. Perintah rsync Linux dengan contoh praktis

  1. Perintah wc Linux dengan Contoh

  2. Perintah sortir Linux dengan Contoh

  3. Perintah JQ di Linux dengan Contoh

  1. Perintah Echo di Linux (Dengan Contoh)

  2. Perintah man di Linux dengan Contoh

  3. Perintah AWK di Linux dengan Contoh