このファイルのすべてのアポストロフィを次に変換したいと思いますX
。
Bob's book
Bob’s book
Bob′s book # (Might look the same but actually different)
最初のアポストロフィは期待どおりに置き換えられます。
$ cat file | tr "'" "X"
BobXs book
Bob’s book
Bob′s book
しかし、他の2種類のアポストロフィを使用すると、奇妙なことが起こります。
$ cat file | tr "’" "X"
Bob's book
BobXXXs book
BobXX�s book
$ cat file | tr "′" "X"
Bob's book
BobXX�s book
BobXXXs book
どのように機能させるのですか?
ベストアンサー1
tr
バイト単位で動作します。つまり、UTF-8などのマルチバイトエンコーディングでは正しく機能しません。私が知っている唯一の解決策は、tr
Unicodeをサポートするバージョンを見つけたり、sed
文字列置換を実行できる他のツールに切り替えることです。