• ベストアンサー

UNIXで、直前のコマンドの一部を置き換えるときに

UNIXでは、 ^AAA^BBB と入力すると、 「直前に実行したコマンドの、AAAをBBBに置き換えたものを実行する」 というようになっている、と思います。 さて、私がWindows上で使っているMSYS(UNIX風の環境を作り出すもの。)では、 直前のコマンドに、AAAが2箇所以上あるときに、最初の1箇所しか置き換えてくれません。 それはUNIXとしては普通の仕様なのでしょうか。 AAAが2箇所以上あるときに、それをすべてBBBに置き換えるためには、どのようにすればよいですか。

質問者が選んだベストアンサー

  • ベストアンサー
  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.1

^AA^BB で前回実行のコマンドのAAをBBに置き換えて実行 というのはUNIXというよりもシェル(cshやbashなど)の機能かと思います。 ^AA^BBで最初のAAだけ置換、というのは、cshやbashではそういう仕様です。 全部のAAをBBに置き換えて実行するには、bashだと !!:gs/AA/BB/ でOKかと思います。

参考URL:
http://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html