文字列( など3122323123123
)1->ax
があり、任意の , 2->by
andを置き換えたい3->cz
。
bashでそれを行うにはどうすればよいですか?
私は文字セットから始めて[123]
「sed」で試しましたが、置換式の書き方がわかりませんでしたか?
標準のtrユーティリティを見てください。
% echo "3122323123123" | tr "123" "abc"
cabbcbcabcabc
文字を複数の文字に置き換えたい場合は、置換ごとに sed を使用できます。
% echo "3122323123123" | sed -e "s/1/ax/g" -e "s/2/by/g" -e "s/3/cz/g"
czaxbybyczbyczaxbyczaxbycz
ここでは、正規表現はあなたのためのツールではありません。あなたの質問には、正規表現を必要とするものは何もありません。
言語を指定しませんでしたが、PHP で作業してstrtr()
いる場合は、探していることを正確に実行する関数を使用できます。
また、古き良きstr_replace()
ものも、検索/置換引数に配列を受け入れることができるため、おそらくあなたが望むこともできるでしょう。
他のほとんどの言語には同様の機能があるはずです。つまり、これには正規表現は必要ありません。
tr///
たとえば、Perl を使用すると、次のようになります。
$ echo "3122323123123" | perl -pe "tr/123/abc/"
cabbcbcabcabc
C#で
string input = "3122323123123";
string output = intput.Replace('1','a').Replace('2','b').Replace('3','c');