私はコード例があり、余分なフォーマットの部分があるように思われるが、いくつかのテキスト処理の終了にタック:tr -d [=、=]は何をしますか?
tr -d [=,=]
私はこれが何をするか分からないとtr
のmanページには、少しのです助けて。これが何をするのかについての洞察はありますか?
私はコード例があり、余分なフォーマットの部分があるように思われるが、いくつかのテキスト処理の終了にタック:tr -d [=、=]は何をしますか?
tr -d [=,=]
私はこれが何をするか分からないとtr
のmanページには、少しのです助けて。これが何をするのかについての洞察はありますか?
等価クラス
[=当量=]man tr
ページ、
から構文
[=C=]
は順不同で、C
に等価な文字の全てに展開されます。等価クラスは、非英語アルファベットをサポートすることを意図した比較的最近の発明である。しかし、それを定義したり内容を決定するための標準的な方法はないようです。したがって、それらはGNU tr
で完全に実装されていません。各キャラクタの等価クラスは、そのキャラクタだけで構成されています。POSIX tr
ページから
例
この例ではdiacritical marks (WikiLink)を剥奪とfile2に書き込まれるファイルfile1のベース文字'e'
のアクセント付き変異体を同定するために等価クラスを使用しています。
tr "[=e=]" "[e*]" <file1 >file2
e
が(é
又はè
いずれか)アクセントとして表される場合、FILE1に、それらは通常e
もっと興味深いことに、この場合、どんな文字がコンマに似ているのだろうかと思っています:) – chepner
@chepner:Yupは構文の可能な使用法を調べるために検索しました。あるいは、より一般的には、等価クラスに関する情報が本当に不足していました。あなたはいくつか知っていますか?ここで更新していただければ幸いです。 – Inian
これはちょうど1の等価クラスになります。楽しみのために、私はエコーを試しましたか? | tr -d '[=?=]' '、しかし2番目の文字U + 037E GREEK QUESTION MARKは削除されませんでした。そのような等価クラスが定義されているロケールが必要なのかもしれません。そのようなロケールを使用していないのです。 – chepner
==
の間のコンマは削除されます。以下の出力を確認してください。
%[email protected]> echo "1==,==2==,==3=,=4=,=5" | tr -d [=,=]
1====2====3==4==5
%[email protected]>
ありがとう。
それは 'echo" 1,2,3,4,5 "を説明していません。 tr -d [=、=] '。 – chepner
'tr'は、文脈とは無関係に各文字を評価します。周囲のコンテンツは行動に何の影響も与えません。 –
として扱われる場合に[=、=] –
ところで、発現が引用されるべきです'' [=、=] '''のように安全です - そうしないと、 'tr'を呼び出す前に、シェルはファイル名をグロブ結果(' '、' 'など)で置き換えることができます。 –