trは一文字ごとに判断する件について

$ cat sample.txt
<a><b>

上記のテキストに対して以下のtrを実行するとどうなるか。

tr "ab" "cd"


試してみる。

$ tr "ab" "cd" < ./sample.txt
<c><d>

げえっ。
つまり、trは1文字ずつ判断する。
 a→cに変わり、
 b→dに変わる。
 ※「ab」を置換しない点に注意。


応用。
同じファイルに対して。

$ tr -d "<>" < sample.txt
ab

「<>」ではなく「<」「>」を消去していることに注意。