tr
交換番号0-5
と交換番号を使用したいですA
。6-9
B
私はsed
これを使ってみました:
sed 's/[0-4]/</; s/[6-9]/>/'
しかし、一度だけ動作するので、たとえば、私が書くと123
。A23
AAA
ベストアンサー1
の場合は、各行で発生するすべての内容を置き換えるようにsed
追加する必要があります。g
sed 's/[0-4]/A/g;s/[5-9]/B/g'
を使用すると、tr
2つのsを接続できますtr
。
tr '0-4' A | tr '6-9' B
または明示的に文字変換を提供します。
tr 0123456789 AAAAABBBBB
でも:
tr 0-45-9 AAAAABBBBB
(ただし、後者は1-1マッピングがすぐに表示されないため、読みやすくはありません.)
繰り返されるB
sは短縮され(tr
最後の文字は必要に応じて繰り返されます)、範囲をマージできます。
tr 0123456789 AAAAAB
tr 0-9 AAAAAB
より複雑な置換の場合、コマンドを分割すると、目的をより明確にするのに役立ちます。
tr 0123456789 \
AAAAABBBBB
あるいは、この場合、参照範囲が拡張長と一致するという事実を利用してください。
tr '0-4''5-9' \
AAAAABBBBB
例の最初のコマンドに示すように、均等に分割するために、範囲分割が0-4と5-9であると仮定しますsed
。範囲は必要に応じて調整できます。