Android

Perintah tr di linux dengan contoh-contoh

The basics of BASIC, the programming language of the 1980s.

The basics of BASIC, the programming language of the 1980s.

Daftar Isi:

Anonim

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

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

Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana menggunakan perintah tr melalui contoh-contoh praktis dan penjelasan terperinci dari opsi yang paling umum.

Cara Menggunakan Perintah tr

Sintaks untuk perintah tr adalah sebagai berikut:

tr OPTION… SET1

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

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

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

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

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

reduxeze

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

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

kamu bisa memakai:

echo 'linuxize' | tr 'ln' 'w-z'

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

Dalam 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 perintah echo mencetak karakter baris baru yang tidak terlihat yang juga diganti dengan y . Untuk menggemakan string tanpa baris baru, gunakan opsi -n .

Opsi -d ( --delete ) memberi tahu tr untuk menghapus karakter yang ditentukan dalam SET1. Saat menghapus karakter tanpa menekan, tentukan hanya satu set.

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

echo 'Linuxize' | tr -d 'liz'

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

Lnuxe

Opsi -s ( --squeeze-repeats ) menggantikan urutan kejadian berulang dengan karakter yang diatur dalam SET terakhir.

Pada contoh berikut, tr menghapus karakter spasi yang diulang:

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

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

Secara default, jika SET1 lebih besar dari SET2 tr akan menggunakan kembali karakter terakhir dari SET2. Berikut ini sebuah contoh:

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

Output menunjukkan bahwa karakter e dari SET1 cocok dengan karakter terbaru dari SET2, yaitu 2 :

Linux iz2

Sekarang, gunakan perintah yang sama dengan opsi -t :

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

Linux ize

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

Pilihan menggabungkan

Perintah tr juga memungkinkan Anda untuk menggabungkan opsinya. Sebagai contoh, perintah berikut pertama kali menggantikan semua karakter kecuali i dengan 0 dan kemudian menekan 0 karakter yang diulang:

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

0i0i0

Contoh Perintah Tr

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

Ubah huruf kecil menjadi huruf besar

Mengubah huruf kecil menjadi huruf besar atau mundur adalah salah satu kasus penggunaan khas dari perintah tr . cocok dengan semua karakter huruf kecil dan cocok dengan semua karakter huruf besar.

echo 'Linuxize' | tr '' ''

LINUXIZE

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

echo 'Linuxize' | tr 'az' 'A-Z'

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

Hapus semua karakter non-numerik

Perintah berikut menghapus semua karakter non-numerik:

echo "my phone is 123-456-7890" | tr -cd

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

1234567890

Letakkan setiap kata di baris baru

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

echo 'GNU is an operating system' | tr -cs '' '\n'

GNU is an operating system

Hapus garis kosong

Untuk menghapus garis kosong cukup tekan karakter baris baru yang berulang-ulang:

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

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

Cetak direktori $PATH pada baris terpisah

Variabel lingkungan $PATH adalah daftar direktori yang dipisahkan oleh titik dua yang memberitahu shell direktori mana yang harus dicari file yang dapat dieksekusi ketika Anda mengetik perintah.

Untuk mencetak setiap direktori pada baris terpisah kita harus mencocokkan titik dua (:) dan menggantinya 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 hanya dapat bekerja dengan karakter tunggal. Untuk pencocokan pola dan manipulasi string yang lebih kompleks, Anda harus menggunakan sed atau awk .

terminal tr