Tr: 17 13 वर्ण
(या 14 10 यदि आप केवल तर्कों को गिनें ...)
tr -s ta-s -1
नमूना रन:
bash-4.3$ tr -s ta-s -1 <<< heads
1
bash-4.3$ tr -s ta-s -1 <<< tails
-1
संक्षिप्त विवरण:
tr
ट्रांसपेरेंट के लिए खड़ा है, जिसका अर्थ है, पहले तर्क में पाए गए इनपुट के प्रत्येक चरित्र को दूसरे स्थान पर उसी स्थिति में चरित्र के साथ मिलाएं:
tr ta -1 <<< tails # replaces t ⇢ -, a → 1
⇒ -1ils
यदि पहला तर्क लंबा है, तो दूसरे तर्क में स्थितीय मिलान के बिना वर्णों को दूसरे तर्क के अंतिम चरित्र से बदल दिया जाता है:
tr tals -1 <<< tails # replaces t ⇢ -, a → 1, l → 1, s → 1
⇒ -1i11
जब -s
( --squeeze-repeats
) विकल्प का उपयोग किया जाता है, तो एक ही चरित्र के साथ बदले जाने वाले क्रमिक पात्रों को एक ही बार में बदल दिया जाएगा:
tr -s tals -1 <<< tails # replaces t ⇢ -, a → 1, l+s → 1
⇒ -1i1
इसलिए यदि हम सभी पात्रों को "पूंछ" में शामिल करते हैं, तो हमें वह मिलता है जो हमें चाहिए:
tr -s tails -1 <<< tails # replaces t ⇢ -, a+i+l+s → 1
⇒ -1
"हेड्स" के लिए समान है, लेकिन माइनस (रेंगने के लिए वर्णानुक्रम से वर्णित वर्ण) का उपभोग करने के लिए "सामने" रखने की आवश्यकता है:
tr -s taedhs -1 <<< heads # replaces h+e+a+d+s → 1
⇒ 1
"Tails" और "हेड्स" के सभी uniques अक्षर को एक एकल तर्क में विलय करना, "t" को सामने रखना अंतिम समाधान की ओर ले जाता है:
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
वर्ण, में एक अंतराल की गणना से बचने के लिए से - करने के लिए प्रारूप बजाय प्रयोग किया जा सकता है।