GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan perintah tr di Linux untuk bermain dengan karakter

Perintah tr di Linux menerjemahkan satu set karakter ke karakter lainnya. Itu dapat menggantikan karakter atau sekumpulan karakter dengan karakter atau set karakter lain. tr membaca input dari input standar dan menampilkan output pada output standar. Input juga dapat diberikan dalam sebuah file atau dengan menggunakan perintah echo.

tr kependekan dari terjemahkan .

Format standar untuk perintah tr adalah :

$ tr [option] [char_set 1] [char_set 2]

Berdasarkan opsi yang ditentukan, perintah tr menggantikan set karakter di "set 1" dengan "set 2".

Mengganti karakter

Untuk mengganti karakter menggunakan perintah tr cukup sebutkan karakter yang akan diganti di set pertama dan karakter yang akan diletakkan di tempatnya setelah diganti di set ke-2.

$ tr 'a' '1'

Perintah ini akan menunggu input dari STDIN. Setelah mendapatkan input, output di layar akan muncul dengan semua contoh 'a' diganti dengan '1'.

1. Menggunakan echo dengan perintah tr

Contoh di atas membaca input dari STDIN. Perintah gema dapat memberikan input bersama dengan perintah tr. Gunakan operator Pipe(|) untuk menjalankan perintah bersama.

$  echo "apples and bananas" | tr 'a' '1'

2. Mengambil input dari file

tr juga dapat mengambil inputnya dari file. Ini berguna ketika terjemahan harus dilakukan pada kumpulan teks yang banyak. Operator redirection (<) digunakan untuk memberikan input dari sebuah file.

$ tr 'a' '1' < input.txt

input.txt berisi teks yang sama seperti contoh di atas.

Untuk menyimpan teks ke file, gunakan operator redirection(>) untuk mengarahkan output ke file.

$ tr 'a' '1' < input.txt > output.txt

Mengubah huruf besar kecil teks dengan perintah tr

Salah satu kegunaan paling umum dari perintah tr adalah menerjemahkan teks dari huruf kecil ke huruf besar atau sebaliknya.

Karena tr bekerja pada set karakter, kita dapat secara eksplisit menyebutkan set karakter huruf kecil sebagai set 1 dan set karakter huruf besar sebagai set 2 untuk beralih.

$ echo "apples and bananas" | tr a-z A-Z

Setel a-z mewakili himpunan huruf kecil dan himpunan A-Z mewakili himpunan huruf besar.

Cara lain untuk melakukan hal yang sama adalah :

$ echo "apples and bananas" | tr [:lower:] [:upper:]

Di sini, [:bawah:] mewakili set huruf kecil dan [:upper:] mewakili set huruf besar.

Menghapus karakter dengan tr

tr memiliki kemampuan untuk menghapus sekumpulan karakter dari teks. Ini dicapai dengan menggunakan tr bersama dengan -d perintah.

$  echo "apples and bananas" | tr -d 'n'

Perintah ini akan menghilangkan semua kemunculan ‘n’ dalam teks.

Untuk menghapus kemunculan beberapa karakter, sebutkan semua karakter dalam tanda kutip tunggal.

$  echo "apples and bananas" | tr -d 'na'

Perintah ini akan menghapus kemunculan ‘n’ dan ‘a’

Karena tr bekerja pada level karakter, semua kemunculan individu ‘n’ dan ‘a’ dihapus. Sangat mudah untuk salah dan berpikir bahwa perintah hanya akan menghapus kemunculan 'na' terjadi dalam urutan itu. Namun, bukan itu masalahnya.

Squeeze beberapa kejadian menjadi satu

Meremas beberapa kejadian menjadi satu dapat berguna untuk mengompres teks. Ini sering digunakan untuk menghapus beberapa spasi antar baris.

-s opsi digunakan dengan tr untuk memeras.

$ echo "apples and bananas" | tr -s 'p'

Beberapa kemunculan 'p' di apel telah dikurangi menjadi satu kemunculan.

$  echo "apples and bananas" | tr -s 'na' '1'

Output dari perintah ini setara dengan yang pertama mengganti kemunculan karakter 'n' dan ‘a ‘ dengan ‘1’ , diikuti dengan operasi pemerasan. Untuk membandingkan lihat perintah kedua di output. Hasil dari perintah kedua adalah substitusi karakter sederhana.

Mari kita tekan semua 1 di output perintah kedua untuk melihat apakah kita mendapatkan output yang sama seperti yang pertama.

Kami mendapatkan output yang sama dengan perintah pertama di output.

Untuk menghapus spasi putih berurutan dalam teks gunakan :

$  echo "apples    and    bananas" | tr -s " " 

Atau [:spasi:] dapat digunakan sebagai pengganti ” “

$ echo "apples    and    bananas" | tr -s [:space:]

Mengekstrak digit dari teks

Untuk mencapai operasi di mana hanya serangkaian karakter tertentu yang perlu dipertahankan. Sebaiknya gunakan -c pilihan. -c digunakan untuk melengkapi himpunan.

Komplemen suatu himpunan berarti segala sesuatu selain apa yang ada dalam himpunan itu.

$ echo " Home : 011 1234 4321" | tr -cd [:digit:],'\n' 

Menyebutkan ‘\n’ (baris baru) penting karena jika tidak, output tidak memiliki baris baru dan bercampur dengan baris berikutnya di terminal. Alasan lain untuk tidak mengabaikan baris baru saat menghapus karakter adalah bahwa file Anda dapat memiliki banyak digit dalam beberapa baris. Jika karakter baris baru dihapus maka semua angka akan muncul bersamaan tanpa spasi.

Mengekstrak kata dari teks

Proses ini adalah kebalikan dari yang dilakukan di atas. Di sini kita akan mengabaikan angka dan hanya fokus pada kata-kata yang terdiri dari huruf.

$ echo " Home : 011 1234 4321" | tr -d [:digit:]

Dalam contoh ini kami hanya menghapus semua digit dari teks keluar.

Cara yang lebih terkontrol untuk melakukan hal yang sama adalah melalui pelengkap.

$ echo " Home : 011 1234 4321" | tr -cd [:alpha:],'\n'

[:alfa:] mewakili himpunan abjad. Anggap saja sebagai kumpulan dari dua set, bawah dan atas.

[:alpha:] = [:lower:] + [:upper:]

Menghitung jumlah kemunculan kata

Menghitung berapa kali sebuah kata muncul dalam teks dapat berguna untuk membangun histogram. Ini juga sangat berguna dalam membangun model probabilistik untuk deteksi spam email.

Pertama, mari buat file dengan beberapa kata yang berulang.

Terkadang berguna untuk menampilkan setiap kata dari teks dalam baris baru.

$ tr -cs "[:alpha:]" "\n" < input.txt

Untuk mendapatkan jumlah kemunculan setiap kata, gunakan:

$ tr -cs "[:alpha:]" "\n" < input.txt | sort | uniq -c

Urutkan digunakan untuk mengurutkan daftar secara leksikografis. uniq -c menghitung kemunculan individu dari setiap kata dan menampilkan hasilnya sebagai daftar kata dengan hitungan.

Kesimpulan

Perintah tr berguna untuk melakukan terjemahan berbasis karakter. Ketika dikombinasikan dengan perintah lain seperti sort atau uniq, perintah tr bisa menjadi sangat kuat. Baca lebih lanjut tentang perintah tr di halaman manualnya. Saat menerapkan transformasi di seluruh baris, perintah sed dapat digunakan.


Linux
  1. Menjadwalkan tugas dengan perintah cron Linux

  2. Diagnosis masalah konektivitas dengan perintah ping Linux

  3. Tonton perintah dan tugas dengan perintah jam tangan Linux

  1. Ganti kutipan pintar dengan perintah sed Linux

  2. Menggunakan perintah find Linux – Penggunaan dengan contoh

  3. Menggunakan –exclude Dengan Perintah Du?

  1. Mainkan drum di Linux dengan Hidrogen

  2. Jadwalkan tugas dengan Linux pada perintah

  3. Menggunakan kekuatan di baris perintah Linux