私のお気に入りのUnixトリックの1つは^x^y
、これは最後のコマンドを受け取り、「x」の最初のインスタンスを「y」で置き換えます。しかし、同様のトリックが最後のコマンドでall "x"のインスタンスを "y"に置き換えるかどうか疑問に思いますか?
!!:gs/search/replace/
必要なことを行うための表記。これは、グローバル検索と置換(:gs
):
before
$ echo "harm warm swarm barm"
harm warm swarm barm
後
$ !!:gs/arm/orn/
echo "horn worn sworn born"
horn worn sworn born
^string1^string2
に何かを追加してbash
をすべての出現箇所に置き換える簡単な方法があるとは思いません。 slmが指摘するように、!!:gs/string1/string1
と記述する必要があります。
ただし、zsh
では、:G
を追加するだけです。
$ echo foo foo
foo foo
$ ^foo^bar^:G
echo bar bar
bar bar
bash
とzsh
の両方で、次のようにfc -s
を使用することもできます。
$ echo foo foo
foo foo
$ fc -s foo=bar
echo bar bar
bar bar
これはしばしばr
と呼ばれるエイリアスにされるので、次のようにすることができます:
$ echo foo foo
foo foo
$ r foo=bar
echo bar bar
bar bar
「:&」を使用するのが最善の方法だと思います
$ echo "dog cat dog"
$ ^dog^cat^:&
echo "cat cat cat"
cat cat cat