プロが教えるわが家の防犯対策術!

初心者です。

以下のようなシェルスクリプトがあるとき、
------------------------------------
#!/bin/sh

STRING=zbcdcbz

# 変換前
scho ${STRING}

# 文字列変換を実行
# ?????

# 変換後
scho ${STRING}
------------------------------------

変数STRINGの値を、"zbcdcbz"から、"abcdcba"に
変換するには、どうしたらよいでしょうか?

何かご存知の方がいらっしゃったら、回答願えないでしょうか。
よろしくお願い致します。

A 回答 (1件)

まず「sedコマンドが使えないかな?」と思いましたが.....相手は変数なんですよねー。



で、強引かつイマイチかっこ悪いですがsedにこだわって.....

・・・・・・・・・・・
# 文字列変換を実行
echo ${STRING} > /tmp/hoge.txt
STRING=`sed 's/z/a/g' /tmp/hoge.txt`

# 変換後
・・・・・・・・・・・

で、どうでしょうか?
今手元に機械がないので実際に試せないのですが、sedをキーワードにお手元の実機でいろいろやってみればもう少しスマートな方法があるかもしれません。

参考URL:http://www.h3.dion.ne.jp/~xosada/unix/normal.html

この回答への補足

できました。
perlが使えたので、以下のようにしてみたところ、
正しく動いているみたいです。

--------------------------------
#!/bin/sh

STRING=zbcdcbz

# 変換前
echo ${STRING}

# 文字列変換を実行
STRING=`echo ${STRING} | perl -pe 's/z/a/g'`

# 変換後
echo ${STRING}
--------------------------------

補足日時:2005/10/07 17:30
    • good
    • 0
この回答へのお礼

さっそくの回答ありがとうございます。
sedというコマンドは見つけて調べてみたのですが、
ファイルに対して文字列置換するようだったので、
別の方法はないかと考えていたのですが。。。
もうちょっと、sedについて調べてみます。

関係ないですが、私が書いたソースの例で、
"echo"を"scho"とタイプミスしてましたね。
お恥ずかしい限りです。。。

とにかく、ありがとうございました。

お礼日時:2005/10/07 17:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!