私はすべての数字0-9を対応するsedの文字で置き換えるコマンドに取り組んでいます。私は何か間違っていることを知っていますが、sedは置換正規表現を文字列リテラル以外のものとして解釈していません。
私が使用しているコマンドはsed -r 's/[0-9]/[A-J]/g' log > ~/output.txt
それは私にはかなり簡単に思えますが、私はそれについて約1時間行き詰っています。受け取った出力は、0-9を文字列 "[A-J]"に置き換えます。
代わりに、match(左側)のみが正規表現です。 replacementは、多かれ少なかれ単なるリテラル文字列(バックスラッシュ展開を伴う)です。それは正規表現ではないです。
置換ではなく音訳が必要なため、s
をy
に置き換えます。
echo 34031445 | sed 'y/0123456789/ABCDEFGHIJ/'
sedはy
で範囲を使用できませんが、Perlは次のことができます。
echo 34031445 | Perl -pe 'y/0-9/A-J/'
または、単にtr
を使用します。
echo 34031445 | tr 0-9 A-J