GNU/Linux >> Belajar Linux >  >> Linux

Perintah tr di Linux dengan Contoh

tr adalah utilitas baris perintah di sistem Linux dan Unix yang menerjemahkan, menghapus, dan menekan karakter dari input standar dan menulis hasilnya ke output standar.

tr perintah dapat melakukan operasi seperti menghapus karakter berulang, mengubah huruf besar menjadi huruf kecil, dan mengganti dan menghapus karakter dasar. Biasanya, ini digunakan dalam kombinasi dengan perintah lain melalui perpipaan.

Dalam tutorial ini, kami akan menunjukkan cara menggunakan tr perintah melalui contoh-contoh praktis dan penjelasan rinci tentang opsi yang paling umum.

Cara Menggunakan tr Perintah #

Sintaks untuk tr perintahnya adalah sebagai berikut:

tr OPTION... SET1 [SET2]

tr menerima dua set karakter, biasanya dengan panjang yang sama, dan mengganti karakter set pertama dengan karakter yang sesuai dari set kedua.

Sebuah SET pada dasarnya adalah serangkaian karakter, termasuk karakter khusus dengan garis miring terbalik.

Pada contoh berikut, tr akan mengganti semua karakter dari input standar (linuxize), dengan memetakan karakter dari set pertama dengan karakter yang cocok dari set kedua.

echo 'linuxize' | tr 'lin' 'red'

Setiap kemunculan l diganti dengan r , i dengan e , dan n dengan d :

reduxeze

Kumpulan karakter juga dapat didefinisikan menggunakan rentang karakter. Misalnya, alih-alih menulis:

echo 'linuxize' | tr 'lmno' 'wxyz'

Anda dapat menggunakan:

echo 'linuxize' | tr 'l-n' 'w-z'

Ketika -c (--complement ) opsi digunakan, tr menggantikan semua karakter yang tidak ada dalam SET1.

Pada contoh di bawah ini semua karakter kecuali “li” akan diganti dengan karakter terakhir dari set kedua:

echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy

Seperti yang mungkin Anda perhatikan, output di atas memiliki satu karakter yang lebih terlihat daripada input. Ini karena echo perintah mencetak karakter baris baru yang tidak terlihat \n yang juga diganti dengan y . Untuk menggemakan string tanpa baris baru, gunakan -n pilihan.

-d (--delete ) opsi memberitahu tr untuk menghapus karakter yang ditentukan dalam SET1. Saat menghapus karakter tanpa memeras, tentukan hanya satu set.

Perintah di bawah ini akan menghapus l , i dan z karakter:

echo 'Linuxize' | tr -d 'liz'

L karakter tidak dihapus karena input menyertakan L huruf besar sedangkan l karakter dalam SET adalah huruf kecil.

Lnuxe

-s (--squeeze-repeats ) opsi menggantikan urutan kejadian berulang dengan set karakter di SET terakhir.

Pada contoh berikut, tr menghilangkan karakter spasi yang berulang:

echo "GNU     \    Linux" | tr -s ' '
GNU \ Linux

Ketika SET2 digunakan, urutan karakter yang ditentukan dalam SET1 diganti dengan SET2.

echo "GNU     \    Linux" | tr -s ' ' '_'
GNU_\_Linux

-t (--truncate-set1 ) opsi memaksa tr untuk memotong SET1 ke panjang SET2 sebelum melakukan pemrosesan lebih lanjut.

Secara default, jika SET1 lebih besar dari SET2 tr akan menggunakan kembali karakter terakhir SET2. Ini contohnya:

echo 'Linux ize' | tr 'abcde' '12'

Outputnya menunjukkan bahwa karakter e dari SET1 dicocokkan dengan karakter terbaru dari SET2, yaitu 2 :

Linux iz2

Sekarang, gunakan perintah yang sama dengan -t pilihan:

echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize

Anda dapat melihat bahwa tiga karakter terakhir dari SET1 dihapus. SET1 menjadi 'ab', sama panjangnya dengan SET2, dan tidak ada penggantian yang dilakukan.

Menggabungkan opsi #

tr perintah juga memungkinkan Anda untuk menggabungkan opsinya. Misalnya, perintah berikut menggantikan semua karakter terlebih dahulu kecuali i dengan 0 dan kemudian menekan 0 . yang berulang karakter:

echo 'Linux ize' | tr -cs 'i' '0'
0i0i0

Contoh Perintah Tr #

Di bagian ini, kita akan membahas beberapa contoh penggunaan umum tr perintah.

Mengubah huruf kecil menjadi huruf besar #

Mengonversi huruf kecil ke huruf besar atau sebaliknya adalah salah satu kasus penggunaan umum tr memerintah. [:lower:] cocok dengan semua karakter huruf kecil dan [:upper:] cocok dengan semua karakter huruf besar.

echo 'Linuxize' | tr '[:lower:]' '[:upper:]'
LINUXIZE

Alih-alih kelas karakter, Anda juga dapat menggunakan rentang:

echo 'Linuxize' | tr 'a-z' 'A-Z'

Untuk mengonversi huruf besar ke huruf kecil, cukup ganti tempat set.

Hapus semua karakter non-numerik #

Perintah berikut menghapus semua karakter non-numerik:

echo "my phone is 123-456-7890" | tr -cd [:digit:]

[:digit:] singkatan dari semua karakter digit, dan dengan menggunakan -c option, perintah menghapus semua karakter non-digit. Outputnya akan terlihat seperti ini:

1234567890

Letakkan setiap kata di baris baru #

Untuk menempatkan setiap kata dalam baris baru, kita harus mencocokkan semua karakter non-alfanumerik dan menggantinya dengan baris baru:

echo 'GNU is an operating system' | tr -cs '[:alnum:]' '\n'
GNU
is
an
operating
system

Hapus baris kosong #

Untuk menghapus baris kosong cukup tekan karakter baris baru yang berulang:

tr -s '\n' < file.txt > new_file.txt

Pada perintah di atas kita menggunakan simbol redirection < untuk meneruskan konten file.txt ke tr memerintah. Pengalihan > menulis output dari perintah ke new_file.txt .

$PATH variabel lingkungan adalah daftar direktori yang dipisahkan titik dua yang memberi tahu shell direktori mana yang akan mencari file yang dapat dieksekusi saat Anda mengetik perintah.

Untuk mencetak setiap direktori pada baris terpisah, kita harus mencocokkan titik dua (: ) dan ganti dengan baris baru:

echo $PATH | tr  ':' '\n'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin

Kesimpulan #

tr adalah perintah untuk menerjemahkan atau menghapus karakter.

Meskipun sangat berguna, tr dapat bekerja hanya dengan karakter tunggal. Untuk pencocokan pola dan manipulasi string yang lebih kompleks, Anda harus menggunakan sed atau awk .

Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.


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