Bashの置換機能

n番目に入力したコマンド

echo foobar

のfooをbazに置換したいときは

!n:s/foo/baz/

とする…というのは今回のテキストで書かれていたことなのだが、

echo foobarfoo

に同じことをすると、最初のfooしかbazに置換されないと質問を受ける。

sedと同じ見た目をしているので、一番最後にgをくっつければいいのでは?ととりあえず言ってみたが、実際試してみるとecho bazbarfoogになってしまう。

慌ててmanを見ると、gは後ろじゃなくて前につけるのだそうな。こんな感じ。

!n:gs/foo/baz/

紛らわしい。式評価の仕方の関係でやむなくかな?

広告
カテゴリー: ks. Bashの置換機能 はコメントを受け付けていません。
%d人のブロガーが「いいね」をつけました。