私はこのtr
コマンドを使用して、他のコマンドの出力から折り返しをタブに置き換え、出力を列形式に合わせるために複数のタブを使用したいと思います。
10進または8進の値になるオプションがtr
ありますが、次のような単純な行のように動作させることはできません。[CHAR*REPEAT]
REPEAT
echo "1234" | tr ['2'] ['x'*3]
以下を提供します。
1x34
私が期待するとき:
1xxx34
正しい構文は何ですか?
ベストアンサー1
「繰り返し」オプションの意味を間違って理解しているようです。
tr
正しく推論したように、文字セットが翻訳に使用されます。オプションで呼び出すことができます。
ティー設定1 設定2
アイデアは、両方のセットに複数の文字を含めることができるということです。つまり、次のように言えます。
tr 'abc' 'def'
a
すべてをにd
、b
すべてをにe
、c
すべてをに置き換えますf
。時には、複数の「入力」文字を同じ「出力」文字に置き換えたい場合があります。
tr 'abcdefghij' 'xxxxxxxxyz'
これは〜で、〜で、〜にa
置き換えられます。 「繰り返し」機能の目的は、書くことがあまり面倒ではなく、書くことができるようにすることです。h
x
i
y
j
z
tr 'abcdefghij' '[x*8]yz'
略語で。残念ながら、これはあなたが望む仕事に合わせて設計されていないことを意味します。
代わりに、あなたは試すことができますsed
$ echo "1234" | sed 's/2/xxx/g'
1xxx34
s
これにより、()のすべての項目(トレイル)がg
置き換えられます。これよりも強力なので(タグ付けされた質問を確認してください。2
xxx
sed
sed何が起こっているのかを概説するには、とにかく見てみることをお勧めします。