Unix命令行历史替换^ foo ^ bar(多次替换)

时间:2010-02-17 13:03:32

标签: bash unix history

有时我会使用bash命令替换上一个命令中的字符串:

^foo^bar

今天我想在以下行中进行替换,用`radio:

替换所有出现的checkbox
$ git mv _product_checkbox_buttons.html.erb _product_checkbox_button.html.erb
$ ^checkbox^radio
git mv _product_radio_buttons.html.erb _product_checkbox_button.html.erb

所以它只替换第一次出现。如何更换所有出现的内容?

bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.

2 个答案:

答案 0 :(得分:32)

man bash^old^new相当于!!:s/old/new/。您希望!!:gs/old/new/全局替换。

答案 1 :(得分:14)

这样做的一个简单方法是:

fc -s checkbox=radio

我的r

中定义了别名.bashrc
alias r='fc -s'

然后你想做的事情变成:

r checkbox=radio

有关详细信息,请参阅my answer至“hidden features of bash”问题。