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
"heads"와 동일하지만 마이너스 (소름 순으로 정렬 된 문자)를 사용하려면 "t"를 앞에 두어야합니다.
tr -s taedhs -1 <<< heads # replaces h+e+a+d+s → 1
⇒ 1
“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
문자에서 간격 열거 피하려면 에서 - 에 형식 대신 사용할 수 있습니다.