Tr: 17 13 karakter
(Ya da sadece argümanları sayarsanız 14 10…)
tr -s ta-s -1
Örnek çalışma:
bash-4.3$ tr -s ta-s -1 <<< heads
1
bash-4.3$ tr -s ta-s -1 <<< tails
-1
Kısa açıklama:
tr
transliterat anlamına gelir, yani, ilk argümanda bulunan girişin her karakterini ikinci argümanda aynı konumdaki karakterle değiştirir:
tr ta -1 <<< tails # replaces t ⇢ -, a → 1
⇒ -1ils
İlk bağımsız değişken daha uzunsa, ikinci bağımsız değişkende konum eşleşmeyen karakterler ikinci bağımsız değişkenin son karakteriyle değiştirilir:
tr tals -1 <<< tails # replaces t ⇢ -, a → 1, l → 1, s → 1
⇒ -1i11
Ne zaman -s
( --squeeze-repeats
) seçeneği kullanılır, aynı karakterle konacak ardışık karakterleri bir kerede değiştirilir:
tr -s tals -1 <<< tails # replaces t ⇢ -, a → 1, l+s → 1
⇒ -1i1
Bu yüzden, tüm karakterleri "kuyruklarda" sıralarsak, ihtiyacımız olanı elde ederiz:
tr -s tails -1 <<< tails # replaces t ⇢ -, a+i+l+s → 1
⇒ -1
“Kafalar” için de aynıdır, ancak eksi (eksi olarak alfabetik olarak sıralanan karakterler) tüketmek için “t” yi önünde tutması gerekir:
tr -s taedhs -1 <<< heads # replaces h+e+a+d+s → 1
⇒ 1
“Yazıların” ve “kafaların” tüm benzersiz karakterlerini tek bir ilk argümanla birleştirmek, önünde “t” yi tutmak son çözüme yol açar:
tr -s tadehils -1 <<< tails # replaces t → -, a+i+l+s → 1
⇒ -1
tr -s tadehils -1 <<< heads # replaces h+e+a+d+s → 1
⇒ 1
Karakterleri, bir aralık numaralandırma önlemek için gelen - için formatında yerine kullanılabilir.