私はコマンド-c
のオプションが何を言っているかに応じて何をしているのか理解しようとします。tr
man tr
-c, -C, --complement SET1 の補足的な使用
ところで、医師が何を言っているのか理解できません。「もう一度埋める」それで、理解を助けるために、次の例を作成しました。
次のファイルを作成しましたtrance.txt
。
ILOVE YOU
I HATE YOU
i WANNA EAT APPLE PIE
私は走る:tr -C A-Za-z "\n" < trance.txt
結果は次のとおりです。
ILOVE
YOU
I
HATE
YOU
i
WANNA
EAT
APPLE
PIE
-c
しかし、私はまだオプションが実際に何をしているのか理解していません。私に説明してもらえますか?
ベストアンサー1
セットを報酬に置き換えますA-Za-z
。つまり指定された文字を除く現在の文字セットのすべての文字。引用するPOSIX、欠落している-d
:
もし-氏オプションが指定された場合、指定された文字の補完文字列1(現在の設定で定義されているように、現在の文字セットのすべての文字セットLC_CTYPE、実際に指定されたものを除いて文字列1オペランド)は、現在の設定で定義されているように、昇順のソート順で配列に配置する必要があります。LC_COLLATE。
もし-氏指定された値の補数で構成されるオプションが指定されます。文字列1バイナリ値の昇順で配列に配置する必要があります。
したがって、あなたのコマンドはすべての文字を置き換えますいいえAZまたはazに改行文字があります。
なぜならtr
1対1の文字表を使用して置き換える、状況はそれほど単純ではありません。 "not in"オプションだけ-c
でなく-C
、オプションで指定された順序で指定されたセットにないすべての文字セットを作成します。これは、ターゲットセットに複数の文字がある場合にのみ意味があります。