0

文字列( など3122323123123)1->axがあり、任意の , 2->byandを置き換えたい3->cz

bashでそれを行うにはどうすればよいですか?

私は文字セットから始めて[123]「sed」で試しましたが、置換式の書き方がわかりませんでしたか?

4

4 に答える 4

3

標準の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
于 2013-10-18T19:00:42.477 に答える
3

ここでは、正規表現はあなたのためのツールではありません。あなたの質問には、正規表現を必要とするものは何もありません。

言語を指定しませんでしたが、PHP で作業してstrtr()いる場合は、探していることを正確に実行する関数を使用できます。

また、古き良きstr_replace()ものも、検索/置換引数に配列を受け入れることができるため、おそらくあなたが望むこともできるでしょう。

他のほとんどの言語には同様の機能があるはずです。つまり、これには正規表現は必要ありません。

于 2013-10-18T15:27:01.567 に答える
1

tr///たとえば、Perl を使用すると、次のようになります。

$ echo "3122323123123" | perl -pe "tr/123/abc/"    
cabbcbcabcabc
于 2013-10-18T18:58:33.810 に答える
1

C#で

string input = "3122323123123";
string output = intput.Replace('1','a').Replace('2','b').Replace('3','c');
于 2013-10-18T15:31:45.510 に答える